YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE

advertisement
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Introduction to Software Engineering, Software Process, Perspective and Specialized
Process Models – Software Project Management: Estimation – LOC and FP Based
Estimation, COCOMO Model – Project Scheduling – Scheduling, Earned Value Analysis –
Risk Management.
Part A
1. What are the different phases of software engineering (APR/MAY/2010)
(NOV/DEC/2012)
 The definition phase focuses on what. That is, during definition, the software engineer
attempts to identify what information is to be processed, what function and performance are
desired, what system behavior can be expected, what interfaces are to be established, what
design constraints exist, and what validation criteria are required to define a successful
system.
 The development phase focuses on how. That is, during development a software engineer
attempts to define how data are to be structured, how function is to be implemented within a
software architecture, how procedural details are to be implemented, how interfaces are to be
characterized, how the design will be translated into a programming language (or
nonprocedural language), and how testing will be performed.
 The support phase focuses on change associated with error correction, adaptations required
as the software's environment evolves, and changes due to enhancements brought about by
changing customer requirements
2. Define software process model (APR/MAY/2010)
The software process model can be defined as an abstract representation of process. The
software process model consists of various process activities, role of people involved in process
development and software product
3. What is the main difference between system engineering and software engineering
(NOV/DEC/2010)
Software Engineering
 Software engineering is an engineering discipline that is concerned with all aspects of
software production.
 Software engineers should adopt a systematic and organised approach to their work and
use appropriate tools and techniques depending on the problem to be solved, the
development constraints and the resources available.
System Engineering
 System engineering is concerned with all aspects of computer-based systems
development including hardware, software and process engineering.
 System engineers are involved in system specification, architectural design,
integration and deployment.
 Software engineering is part of this process concerned with developing the software
infrastructure, control, applications and databases in the system.
4. State the complicating characteristics of computer bases systems (NOV/DEC/2010)
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 1
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
One complicating characteristic of computer-based systems is that the elements constituting
one system may also represent one macro element of a still larger system. The macro element is
a computer-based system that is one part of a larger computer-based system. As an example, we
consider a "factory automation system" that is essentially a hierarchy of systems. At the lowest
level of the hierarchy we have a numerical control machine, robots, and data entry devices. Each
is a computer based system in its own right. The elements of the numerical control machine
include electronic and electromechanical hardware (e.g., processor and memory, motors,
sensors), software (for communications, machine control, interpolation), people (the machine
operator), a database (the stored NC program), documentation, and procedures. A similar
decomposition could be applied to the robot and data entry device. Each is a computer-based
system
5. Define software engineering. What is the scope of software engineering
(APR/MAY/2011)
 Software Engineering is the establishment and the use of sound engineering principle in
order to obtain a reliable and efficient software.
OR
 Software engineering is a discipline in which theories, methods and tools are applied to
develop professional software product.
OR
 Systematic, disciplined, quantifiable approach to the development, operation and
maintenance of software. That is the application of engineering to software.
The key challenges facing software engineering are:
 Heterogeneity
o Developing techniques for building software that can cope with heterogeneous
platforms and execution environments;
 Delivery
o Developing techniques that lead to faster delivery of software;
 Trust (Copying with legacy systems)
o Developing techniques that demonstrate that software can be trusted by its users.
goals/ objectives of software engineering
 Satisfy user requirements.
 High reliability.
 Low maintenance costs.
 Delivery on time
 Low production costs.
 High performance.
 Ease of reuse.
6. What is meant by independent verification and validation (NOV/DEC/2011)
 Verification represents the set of activities that are carried out to confirm the software
correctly implements the specific functionality.
 Validation represents set of activities that ensure that the software that has been is satisfying
the customer requirements.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 2
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
7. Differentiate waterfall model with V- model (NOV/DEC/2011)
 .In Waterfall Model the tester role will take place only in the test phase but in V-Model
role will take place in the requirement phase itself
 Waterfall model is a fixed process u can't make any changes in the requirement or in any
phase but in V-Model can make any changes in the requirements
 .V-model is the simultaneous process but it is not in case of water fall model
 .waterfall model used only when the requirements are fixed but V-model can be used for
any type of requirement(Uncertain requirement)
 Waterfall model
 V-model
8. Name the task regions of a spiral model (MAY/JUN/2012)
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 3
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 A spiral model is divided into a number of framework activities, also called task regions.
Typically, there are between three and six task regions. Figure 2.8 depicts a spiral model
that contains six task regions:
 Customer communication—tasks required to establish effective communication
between developer and customer.
 Planning—tasks required to define resources, timelines, and other project related
information.
 Risk analysis—tasks required to assess both technical and management risks.
 Engineering—tasks required to build one or more representations of the application.
 Construction and release—tasks required to construct, test, install, and provide user
support (e.g., documentation and training).
9. What are different approaches to the sizing problem (MAY/JUN/2012)
We consider the software sizing problem. Because a project estimate is only as good as
the estimate of the size of the work to be accomplished, sizing represents the project
planner’s first major challenge. In the context of project planning, size refers to a quantifiable
outcome of the software project. If a direct approach is taken, size can be measured in LOC.
If an indirect approach is chosen, size is represented as FP.
 “Fuzzy logic” sizing
 Function point sizing
 Standard component sizing
 Change sizing
10. List the issues of software’s
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 4
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
There are three general issues that affect many different types of software:
• Heterogeneity Increasingly, systems are required to operate as distributed systems across
networks that include different types of computer and mobile devices we often have to
integrate new software with older legacy systems written in different programming
languages. The challenge here is to develop techniques for building dependable software that
is flexible enough to cope with this heterogeneity.
• Business and social change Business and society are changing incredibly quickly as
emerging economies develop and new technologies become available. They need to be able
to change their existing software and to rapidly develop new software. Many traditional
software engineering techniques are time consuming and delivery of new systems often takes
longer than planned. They need to evolve so that the time required for software to deliver
value to its customers is reduced.
• Security and trust. This is especially true for remote software systems accessed through a
web page or web service interface. We have to make sure that malicious users cannot attack
our software and that information security is maintained.
11. Define dynamic verification (NOV/DEC/2012)
 Dynamic verification is performed during the execution of software, and dynamically
checks its behaviour; it is commonly known as the Test phase. Verification is a Review
Process. Depending on the scope of tests, we can categorize them in three families:
 Test in the small: a test that checks a single function or class (Unit test)
 Test in the large: a test that checks a group of classes, such as
o Module test (a single module)
o Integration test (more than one module)
o System test (the entire system)
 Acceptance test: a formal test defined to check acceptance criteria for a software
o Functional test
o Non functional test (performance, stress test)
 Software verification is often confused with software validation. The difference
between verification and validation:
o Software verification asks the question, "Are we building the product right?"; that
is, does the software conform to its specification.
o Software validation asks the question, "Are we building the right product?"; that
is, is the software doing what the user really requires.
 The aim of software verification is to find the errors introduced by an activity, i.e. check
if the product of the activity is as correct as it was at the beginning of the activity.
12. State the human and organizational factors from the system’s environment that affect
the system design (MAY/JUN/2013)
 Communication: communicate with customer to understand objectives and gather
requirements

Planning: creates a “map” defines the work by describing the tasks, risks and resources,
work products and work schedule.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 5
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT

Modeling: Create a “sketch”, what it looks like architecturally, how the constituent parts
fit together and other characteristics.

Construction: code generation and the testing.

Deployment: Delivered to the customer who evaluates the products and provides
feedback based on the evaluation
Organizational factors
 Software project tracking and control
 Risk management
 Software Quality Assurance
 Formal Technical Reviews
 Software Configuration Management
 Work product preparation and production
 Reusability management
 Measurement.
13. What are the umbrella activities of a software process?
 Software project tracking and control.
 Risk management.
 Software Quality Assurance.
 Formal Technical Reviews.
 Software Configuration Management.
 Work product preparation and production.
 Reusability management. Measurement.
14. Distinguish between spiral model from winwin spiral model (MAY/JUN/2013)
 The spiral model is similar to the incremental model, with more emphases placed on risk
analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called
Spirals in this model). The baseline spiral, starting in the planning phase, requirements is
gathered and risk is assessed. Each subsequent spiral builds on the baseline spiral.
Requirements are gathered during the planning phase. In the risk analysis phase, a process is
undertaken to identify risk and alternate solutions. A prototype is produced at the end of the
risk analysis phase. Software is produced in the engineering phase, along with testing at the
end of the phase. The evaluation phase allows the customer to evaluate the output of the
project to date before the project continues to the next spiral.
 The original spiral model began each cycle of the spiral by performing the next level of
elaboration of the prospective system's objectives, constraints and alternatives. A primary
difficulty in applying the spiral model has been the lack of explicit process guidance in
determining these objectives, constraints, and alternatives. The Win-Win Spiral Model uses
the theory W (win-win) approach to converge on a system's next-level objectives,
constraints, and alternatives. This Theory W approach involves identifying the system's
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 6
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
stakeholders and their win conditions, and using negotiation processes to determine a
mutually satisfactory set of objectives, constraints, and alternatives for the stakeholders.
15. List the process maturity levels in SEIs CMM.
 Level 1:Initial – Few processes are defined and individual efforts are taken.
 Level 2:Repeatable – To track cost schedule and functionality basic project
management processes are established.
 Level 3:Defined – The process is standardized, documented and followed.
 Level 4:Managed – Both the software process and product are quantitatively
understood and controlled using detailed measures.
 Level 5:Optimizing – Establish mechanisms to plan and implement change.
16. What is an effectors process?
The effectors process is a process that verifies itself..The effectors process exists in certain
criteria.
17. Differentiate between verification and validation (NOV/DEC/2013)
(NOV/DEC/2014)(MAY/JUNE/2014)
OR
18. Distinguish between software validation and software verification (APR/MAY/2011)
Verification
Validation
1. Are we building the product right?
2. Verification shows conformance
with specification
1. Are we building the right product?
2. Validation shows that the program
meets the customer’s needs.
19. What do you mean by computer based system (NOV/DEC/2013)
The computer based system can be defined as “a set or an arrangement of elements that are
organized to accomplish some predefined goal by processing information”
20. Differentiate between Software Engineering and Computer Science
.
Software Engineering
Computer Science
The software engineering is concerned with
The computer science deals with the theories
the practical problems of producing software.
and methods used by the computers and
software systems.
Some knowledge of computer science is
Elegant theories cannot be completely
necessary for the software engineers to develop applicable to the software engineering when
the software.
software solution to complex or real world
problem has to be developed.
21. What are the steps followed in testing?
 Unit testing – The individual components are tested in this type of testing.
 Module testing – Related collection of independent components are tested.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 7
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Sub-system testing – This is a kind of integration testing. Various modules are
integrated into a subsystem and the whole subsystem is tested.
 System testing – The whole system is tested in this system.
 Acceptance testing – This type of testing involves testing of the system with
customer data. If the system behaves as per customer need then it is accepted.
22. . What is the use of CMM?
Capability Maturity Model is used in assessing how well an organizations processes allow to
complete and manage new software projects.
23. Name the Evolutionary process Models.
i. Incremental model
ii. Spiral model
iii. WIN-WIN spiral model
iv. Concurrent Development
24. How to determine the costs in the software engineering.
The costs in the software engineering system depends upon- the type of software being
developed and the software process being used.
25. . How to create good software.
Essential attributes of good design:
Maintainability
Software should be written in such a way so that it can evolve to meet the changing needs
of customers. This is a critical attribute because software change is an inevitable requirement of a
changing business environment.
Dependability and security
Software dependability includes a range of characteristics including reliability, security,
and safety. Dependable software should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or damage the system.
Efficiency
Software should not make wasteful use of system resources such as memory and
processor cycles. Efficiency therefore includes responsiveness, processing time, memory
utilization, etc.
Acceptability
Software must be acceptable to the type of users for which it is designed. This means that it
must be understandable, usable, and compatible with other systems that they use
26. What are software characteristics?
Software development is a logical activity and therefore it is important to understand
basic characteristics of software .Some important characteristics of software are ,
 Software is engineered, not manufactured.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 8
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Software does not wear out.
 Most software is custom built rather than being assembled from components.
27. Define Verification and Validation.
Verification represents the set of activities that are carried out to confirm the software
correctly implements the specific functionality.
Validation represents set of activities that ensure that the software that has been is
satisfying the customer requirements.
28. What is system engineering?
System Engineering means designing, implementing, deploying and operating the systems
which include hardware, software and people
29. What are restraining factors for system model constructions?
 Assumptions
 Simplifications
 Limitations
 Constraints
 Preference
30. . What are goals of business process Engineering.
 The goal of business Process Engineering is to define such an architectures using which
information can be effectively used by the business.
 For satisfying business architecture and goals there are three different architectures that
can be analyzed and designed these are,
o Data architecture
o Applications architecture.
o Technology infrastructure.
31. . What are the goals of product engineering
 The goal of product engineering is to translate the customers demand working product.
 To achieve this goal architecture is built.
32. What is embedded system process.
The embedded system process is a process which works as a part of software model.
Embedded system process run on a single processor or an integrated group of processors.
33. Distinguish between process and methods.
Software process can be defined as the structured set of activities that are required to
develop the software system. Various activities under software process are.
 Specification
 Design and implementation
 Validation
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 9
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Evolution
Method is used mainly in object-oriented programming; the term method refers to a piece of
code that is exclusively associated either with an class or a object.
34. Why software architecture is important in software process
. The software architecture gives the hierarchical structure of software components and their
interactions .In software architecture the software model is designed and structure of that model
is partitioned horizontally or vertically .This helps in implementing a quality software product.
35. What are phases encompassed in the RAD model.
Various phases in the RAD model are
 Business modeling
 Data modeling
 Process modeling
 Application generation
 Testing and turnover
36. Which process model leads to software reuse? Why.
The object oriented model is used for the software reuse because –this model is based on the
incremental development of the software product. This can be done in one or more iterations.
37. What does system engineering model accomplish?
System engineering is modeling process. it accomplishes following things.
 The process that needs a view of consideration is defined.
 Behavior of the system.
 Exogenous and endogenous input is defined.
 All linkages for understanding each view must be represented.
38. Define software life cycle. And its types
Software life cycle is the period of time beginning with a concept for a software product and
ending whenever the software is no longer available for use.
Types of lifecycle model.
1. Prescriptive process model
2. Water fall model
3. Incremental process Model
i) Incremental Model
ii) RAD Model
4. Evolutionary process Model
i) Prototyping model
ii) Spiral Model
iii) The concurrent development Model
5. Specialized Process Model
i) Component based development Model
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 10
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
ii) Formal Methods Model
iii) Aspect oriented S/W development (AOSD)
6. Unified process model
39. Define Water fall model.
 It is an oldest model
 Sometimes called classic lifecycle model
 It is a systematic and sequential approach
 Start from communication and process through planning, modeling, construction and
deployment.
40. What are the Steps present in Waterfall model?
 Communication: Collaboration with customer, gathering information
 Planning: establish a work plan, describe technical risks, list resource, work products etc
 Modeling: creation of models, and design
 Construction: coed generation and testing
 Deployment: delivered to the customer ,evaluate, and provides a feedback
41. Drawbacks of waterfall model
 Oldest model. Rarely follows the sequential flow.
 Difficult to collect requirement explicitly at the beginning.
 A working version not available in later releases.
 It leads a blocking state.
42. What are the phases encompassed in RAD model?
a. Business modeling
b. Data modeling
c. Process modeling
d. Application generation
e. Testing
43. What is meant by development process?
A software development process is a structure imposed on the development of software
product which include analysis, design, code and Test.
44. Give at least two reasons for why prototyping is problematic.
 Prototyping model doesn’t consider the overall software quality or long term
maintainability.
 Developer uses an inappropriate operating system or programming language in orderto
get a prototype working quickly.
45. What are the advantages of prototyping model?
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 11
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Prototyping model is used when a customer defines a set of objectives for software but
doesn’t identify detailed input, processing and output requirements.
 It serves as the mechanism for identifying software requirements.
 If the prototype is built the developer attempts to use existing program fragments to
develop a working program.
46. What is the advantage of incremental model?
Incremental model is useful when staffing is unavailable.
Increments can be planned to manage technical risks.
47. Drawbacks of spiral model
If major risks are not discovered and managed problems will occur.
It demands a direct consideration of technical risks at all stages of project.
48. Identify in which phase of the software life cycle the following documents are
delivered.
a. Architectural design, b. Test plan, c. Cost estimate, d. Source code document.
 Architectural design: Design phase
 Test plan : Testing phase
 Cost estimate: Requirement analysis
 Source code: Implementation phase
49. Various phases of System engineering. process
 Requirement analysis
 System design
 Sub_ System development
 System Integration
 System deployment
 System evolution
 System decommissioning.
50. . Define System Engineering. Hierarchy
System Engg encompasses a collection of top-down and bottom up methods to navigate
the hierarchy.
The levels are
World view
Domain view
Element view
Detailed view
51. . Define a system and computer based system.
 Systemis an established way of doing something like method, procedure.
 Computer based system is a set of arrangement of elements that are organized to
accomplish some predefined goal by processing information system elements.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 12
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
52. Define Business Process Engineering (BPE)
The goal of Business Process Engineering (BPE) is to define architectures that will enable a
business to use information effectively. Three different architectures are
Data architecture
Applications architecture
Technology architecture
53. Define Product engineering.
The goal of product engg is to translate the customer’s desire for a set of defined
functionalities into a working product. Four components are software , hardware ,data , people.
54. State the major difference between software engineering process and software
development process (NOV/DEC/2014)
 Software development and software engineering are interrelated terms, but they don’t
mean quite the same thing.
 A software engineer is engaged in software development; not all software developers,
however, are engineers.
 Software engineering means applying engineering principles to software creation. It
can seem odd to talk about engineering something that doesn’t have mass or take up
space, but software is embedded in things that do have mass.
 Software does everything from dispense our medication to control large equipment.
Many people also rely on software to perform job duties, whether they work in an
office or telecommute.. They work through the development process in a systematic
way; this is called the software development life cycle.
55. State the difference between process and product (MAY/JUNE/2014)
A software process as mentioned earlier, specifies a method of development software. A
software project, on the other hand is a development project in which a software process is
used. And software products are the outcomes of a software project.
PART B (16 marks)
1. Elaborate on business process engineering and product engineering (NOV/DEC/2010)\
OR
2. Business process engineering strives to define data and application architecture as well
as technology infrastructure. Describe what each of these terms mean and provide an
example (NOV/DEC/2012)
OR
3. Explain the concept of business process engineering (MAY/JUN/2012)
(MAY/JUN/2013) (NOV/DEC/2013) (NOV/DEC/2014) (MAY/JUNE/2014)
OR
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 13
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
4. Explain the concept of product engineering (APR/MAY/2011) (MAY/JUN/2012)
(MAY/JUN/2013) (NOV/DEC/2013) (NOV/DEC/2014) (MAY/JUNE/2014)
Business process engineering Hierarchy
 The goal of business process engineering (BPE) is to define architectures that will enable a
business to use information effectively.
 When taking a world view of a company’s information technology needs, there is little doubt
that system engineering is required. Not only the specification of the appropriate computing
architecture required, but the software architecture that populates the ―unique configuration
of heterogeneous computing resources‖ must be developed.
 Business process engineering is one approach for creating an overall plan for implementing
the computing architecture.
 Three different architectures must be analyzed and designed within the context of business
objectives and goals:
o data architecture
o applications architecture
o technology infrastructure
 The data architecture provides a framework for the information needs of a business or
business function. The individual building blocks of the architecture are the data objects that
are used by the business. A data object contains a set of attributes that define some aspect,
quality, characteristic, or descriptor of the data that are being described.
 The application architecture encompasses those elements of a system that transform objects
within the data architecture for some business purpose. In the context of this book, we
consider the application architecture to be the system of programs (software) that performs
this transformation. However, in a broader context, the application architecture might
incorporate the role of people (who are information transformers and users) and business
procedures that have not been automated.
 The technology infrastructure provides the foundation for the data and application
architectures. The infrastructure encompasses the hardware and software that are used to
support the application and data. This includes computers, operating systems, networks,
telecommunication links, storage technologies, and the architecture (e.g., client/server) that
has been designed to implement these technologies.
 The final BPE step—construction and integration focuses on implementation detail. The
architecture and infrastructure are implemented by constructing an appropriate database and
internal data structures, by building applications using software components, and by selecting
appropriate elements of a technology infrastructure to support the design created during BSD.
 Each of these system components must then be integrated to form a complete information
system or application.
 The integration activity also places the new information system into the business area
context, performing all user training and logistics support to achieve a smooth transition.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 14
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Product Engineering
 The goal of product engineering is to translate the customer‗s desire for a set of defined
capabilities into a working product. To achieve this goal, product engineering—like
business process engineering—must derive architecture and infrastructure.
 The architecture encompasses four distinct system components: software, hardware, data
(and databases), and people. A support infrastructure is established and includes the
technology required to tie the components together and the information (e.g.,
documents,CD-ROM, video) that is used to support the components.
 The world view is achieved through requirements engineering. The overall requirements
of the product are elicited from the customer. These requirements encompass information
and control needs, product function and behavior, overall product performance, design
and interfacing constraints, and other special needs.
 Once these requirements are known, the job of requirements engineering is to allocate
function and behavior to each of the four components noted earlier. Once allocation has
occurred, system component engineering commences.
 System component engineering is actually a set of concurrent activities that address each
of the system components separately: software engineering, hardware engineering,
human engineering, and database engineering.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 15
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT



Each of these engineering disciplines takes a domain-specific view, but it is important to
note that the engineering disciplines must establish and maintain active communication
with one another. Part of the role of requirements engineering is to establish the
interfacing mechanisms that will enable this to happen.
The element view for product engineering is the engineering discipline itself applied to
the allocated component. For software engineering, this means analysis and design
modeling activities (covered in detail in later chapters) and construction and integration
activities that encompass code generation, testing, and support steps.
The analysis step models allocated requirements into representations of data, function,
and behavior. Design maps the analysis model into data, architectural, interface, and
software component-level designs.
5. Bring out clearly the salient features of waterfall model and spiral model. What are the
specific advantages and disadvantages of these two models (APR/MAY/2011)
OR
6. Explain the salient features of the “classical life cycle model” (NOV/DEC/2013)
( Answer waterfall model)
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 16
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
or
7. Describe the waterfall lifecycle model for software developer with a
sketch.”Management tends to like the waterfall model “. Justify (NOV/DEC/2010)
or
8. How do project risk factors affect the spiral model of software development
(APR/MAY/2010) ( answer – spiral model)
A Programming process model is an abstract representation to describe the process from a
particular perspective. There are numbers of general models for software processes, like:
Waterfall model, Evolutionary development, Formal systems development and Reuse based
Development, etc. This research will view the following five models
:
 Waterfall model.
 Iteration model.
 V-shaped model.
 Spiral model.
 Extreme model. These models are chosen because their features correspond to most
software development programs.
 The Waterfall Model or Classical life cycle or linear sequential; model
The waterfall model is the classical model of software engineering. This model is one of the
oldest models and is widely used in government projects and in many major companies. As this
model emphasizes planning in early stages, it ensures design flaws before they develop. In
addition, its intensive document and planning make it work well for projects in which quality
control is a major concern.
The pure waterfall lifecycle consists of several no overlapping stages, as shown in the following
figure. The model begins with establishing system requirements and software requirements and
continues with architectural design, detailed design, coding, testing, and maintenance.
The waterfall model serves as a baseline for many other lifecycle models.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 17
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 18
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
The following list details the steps for using the waterfall model:
1. System requirements: Establishes the components for building the system, including
the hardware requirements, software tools, and other necessary components. Examples
include decisions on hardware, such as plug-in boards (number of channels, acquisition
speed, and so on), and decisions on external pieces of software, such as databases or
libraries.
2. Software requirements: Establishes the expectations for software functionality and
identifies which system requirements the software affects. Requirements analysis
includes determining interaction needed with other applications and databases,
performance requirements, user interface requirements, and so on.
3. Architectural design: Determines the software framework of a system to meet the
specific requirements. This design defines the major components and the interaction of
those components, but it does not define the structure of each component. The external
interfaces and tools used in the project can be determined by the designer.
4. Detailed design: Examines the software components defined in the architectural design
stage and produces a specification for how each component is implemented.
5. Coding: Implements the detailed design specification.
6. Testing: Determines whether the software meets the specified requirements and finds
any errors present in the code.
7. Maintenance: Addresses problems and enhancement requests after the software releases.
 In some organizations, a change control board maintains the quality of the product by
reviewing each change made in the maintenance stage. Consider applying the full
waterfall development cycle model when correcting problems or implementing these
enhancement requests.
 In each stage, documents that explain the objectives and describe the requirements for
that phase are created. At the end of each stage, a review to determine whether the project
can proceed to the next stage is held. Your prototyping can also be incorporated into any
stage from the architectural design and after.
 Many people believe that this model cannot be applied to all situations. For example,
with the pure waterfall model, the requirements must be stated before beginning the
design, and the complete design must be stated before
 starting coding. There is no overlap between stages. In real-world development, however,
one can discover issues during the design or coding stages that point out errors or gaps in
the requirements.
 The waterfall method does not prohibit returning to an earlier phase, for example,
returning from the design phase to the requirements phase. However, this involves costly
rework. Each completed phase requires formal review and extensive documentation
development. Thus, oversights made in the requirements phase are expensive to correct
later.
 Because the actual development comes late in the process, one does not see results for a
long time. This delay can be disconcerting to management and
 customers. Many people also think that the amount of documentation is excessive and
inflexible.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 19
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Although the waterfall model has its weaknesses, it is instructive because it emphasizes
important stages of project development. Even if one does not apply this model, he must
consider each of these stages and its relationship to his own project [4].
Advantages :
 Easy to understand and implement.
 Widely used and known (in theory!).
 Reinforces good habits: define-before- design, design-before-code
 Identifies deliverables and milestones.
 Document driven, URD, SRD, … etc. Published documentation standards, e.g. PSS-05.
 Works well on mature products and weak teams.
Disadvantages :
 Idealized, doesn’t match reality well.
 Doesn’t reflect iterative nature of exploratory development.
 Unrealistic to expect accurate requirements so early in project
 Software is delivered late in project, delays discovery of serious errors
 Difficult to integrate risk management
 . Difficult and expensive to make changes to documents, ”swimming upstream”.
 Significant administrative overhead, costly for small teams and projects
Pure Waterfall
This is the classical system development model. It consists of discontinuous phases:
1. Concept.
2. Requirements.
3. Architectural design.
4. Detailed design.
5. Coding and development.
6. Testing and implementation.
Table 1: Strengths & Weaknesses of Pure Waterfall
Strengths
Weaknesses
Structure minimizes wasted effort, so it works Inflexible
well for technically weak or inexperienced
staff.
Minimizes planning overhead since it can be
Only the final phase produces a no
done up front.
documentation deliverable.
Backing up to address mistakes is difficult
.
Pure Waterfall Summary
The pure waterfall model performs well for products with clearly understood requirements or
when working with well understood technical tools, architectures and infrastructures. Its
weaknesses frequently make it inadvisable when rapid development is needed. In those cases,
modified models may be more effective.
Modified Waterfall
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 20
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
The modified waterfall uses the same phases as the pure waterfall, but is not based on a
discontinuous basis. This enables the phases to overlap when needed. The pure waterfall can also
split into subprojects at an appropriate phase (such as after the architectural design or detailed
design).
Table 2: Strengths & Weaknesses of Modified Waterfall
Strengths
Weaknesses
If there is personnel continuity between the
Activities performed in parallel are subject to
phases, documentation can be substantially
miscommunication and mistaken assumptions.
reduced.
More flexible than the pure waterfall model.
Milestones are more ambiguous than the pure
waterfall.
Implementation of easy areas does not need to Unforeseen interdependencies can create
wait for the hard ones.
problems
.
 Modified Waterfall Summary
 Risk reduction spirals can be added to the top of the waterfall to reduce risks prior to the
waterfall phases. The waterfall can be further modified using options such as prototyping,
JADs or CRC sessions or other methods of requirements gathering done in overlapping
phases
The Waterfall Model should use in projects with clearly and deeply understood of project
requirements, design, technical tools and infrastructures.
Spiral Model
 The spiral model, originally proposed by Boehm [BOE88], is an evolutionary software
process model that couples the iterative nature of prototyping with the controlled and
systematic aspects of the linear sequential model. It provides the potential for rapid
development of incremental versions of the software. Using the spiral model, software is
developed in a series of incremental releases. During early iterations, the incremental
release might be a paper model or prototype. During later iterations, increasingly more
complete versions of the engineered system are produced.
 A spiral model is divided into a number of framework activities, also called task regions.
Typically, there are between three and six task regions. Figure 2.8 depicts a spiral model
that contains six task regions:
 Customer communication—tasks required to establish effective communication
between developer and customer.
 Planning—tasks required to define resources, timelines, and other project related
information.
 Risk analysis—tasks required to assess both technical and management risks.
 Engineering—tasks required to build one or more representations of the application.
 Construction and release—tasks required to construct, test, install, and provide user
support (e.g., documentation and training).
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 21
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Spiral model is an evolutionary version of incremental prototyping.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 22
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Incremental development means that the project is not done by (possibly large) pieces,
but as a series of smaller developments and deliveries. Incremental models try to reduce
the risk of developing the wrong system by delivering useful parts of the system early
and getting customer feedback. System functionality and reliability requirements will
grow over the time, from an early version only for the development or for users, to
version released to final customers later.
 What about testing in spiral model? In spiral model testing must be adapted to such
development models, and continuous integration testing and regression testing are
necessary. The tests should be reusable test cases for every component and increment,
and it should be reused and updated for every additional increment. If this is not a case,
the software reliability tends to decrease over time instead of increasing.
Advantages
 Spiral Life Cycle Model is a very flexible model. Development phases can be determined
by the project manager, according to the complexity of the project.
 Estimates (i.e. budget, schedule, etc.) get more realistic as work progresses, because
important issues are discovered earlier.
 Good for large and mission-critical projects.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 23
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Software is produced early in the software life cycle.
Disadvantages
 Doesn’t work well for smaller projects.
 Evaluating the risks involved in the project can shoot up the cost and it may
be higher than the cost for building the system.
 Spiral model is much customized for every project.
 Risk analysis requires highly specific expertise.
It serves as the best option for businesses with volatile business goals but where there is a
need for a prototype to handle the complexities in the business procedures.
9. In the software development models available, which of the model can be suggested to
achieve high speed development? Explain (NOV/DEC/2012)
The RAD Model
Rapid application development (RAD) is an incremental software development process
model that emphasizes an extremely short development cycle. The RAD model is a “highspeed” adaptation of the linear sequential model in which rapid development is achieved by
using component-based construction. If requirements are well understood and project scope is
constrained, the RAD process enables a development team to create a “fully functional system”
within very short time periods (e.g., 60 to 90 days
The RAD (Rapid Application Development) model is based on prototyping and iterative
development with no specific planning involved. The process of writing the software itself
involves the planning required for developing the product.
Rapid Application development focuses on gathering customer requirements through
workshops or focus groups, early testing of the prototypes by the customer using iterative
concept, reuse of the existing prototypes (components), continuous integration and rapid
delivery.
What is RAD?
Rapid application development (RAD) is a software development methodology that uses
minimal planning in favor of rapid prototyping. A prototype is a working model that is
functionally equivalent to a component of the product.
In RAD model the functional modules are developed in parallel as prototypes and are
integrated to make the complete product for faster product delivery.
Since there is no detailed preplanning, it makes it easier to incorporate the changes within
the development process. RAD projects follow iterative and incremental model and have small
teams comprising of developers, domain experts, customer representatives and other IT
resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that the
prototypes developed are reusable.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 24
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
RAD Model Design
RAD model distributes the analysis, design, build, and test phases into a series of short, iterative
development cycles. Following are the phases of RAD Model:





Business Modeling: The business model for the product under development is designed in terms
of flow of information and the distribution of information between various business channels.
A complete business analysis is performed to find the vital information for business, how it can
be obtained, how and when is the information processed and what are the factors driving
successful flow of information.
Data Modeling: The information gathered in the Business Modeling phase is reviewed and
analyzed to form sets of data objects vital for the business. The attributes of all data sets is
identified and defined. The relation between these data objects are established and defined in
detail in relevance to the business model.
Process Modeling: The data object sets defined in the Data Modeling phase are converted to
establish the business information flow needed to achieve specific business objectives as per the
business model. The process model for any changes or enhancements to the data object sets is
defined in this phase. Process descriptions for adding , deleting, retrieving or modifying a data
object are given.
Application Generation: The actual system is built and coding is done by using automation
tools to convert process and data models into actual prototypes.
Testing and Turnover:The overall testing time is reduced in RAD model as the prototypes are
independently tested during every iteration. However the data flow and the interfaces between all
the components need to be thoroughly tested with complete test coverage. Since most of the
programming components have already been tested, it reduces the risk of any major issues.
Following image illustrates the RAD Model:
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 25
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Drawbacks of RAD Model
 For large but scalable projects, RAD requires sufficient human resources to create the
right number of RAD teams.
 RAD requires developers and customers who are committed to the rapid-fire activities
necessary to get a system complete in a much abbreviated time frame.
 If commitment is lacking from either constituency, RAD projects will fail.
 Not all types of applications are appropriate for RAD. If a system cannot be properly
modularized, building the components necessary for RAD will be problematic.
 If high performance is an issue and performance is to be achieved through tuning the
interfaces to system components, the RAD approach may not work.
 RAD is not appropriate when technical risks are high. This occurs when a new
application makes heavy use of new technology or when the new software requires a high
degree of interoperability with existing computer programs.
10. Describe the activities for a generic system modeling process. Illustrate with an example
(MAY/JUN/2013)
Five Activities of a Generic Process framework
• Communication: communicate with customer to understand objectives and gather
requirements
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 26
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Planning: creates a “map” defines the work by describing the tasks, risks and resources,
work products and work schedule.
Modeling: Create a “sketch”, what it looks like architecturally, how the constituent parts
fit together and other characteristics.
Construction: code generation and the testing.
Deployment: Delivered to the customer who evaluates the products and provides
feedback based on the evaluation.
These five framework activities can be used to all software development regardless of the
application domain, size of the project, complexity of the efforts etc, though the details
will be different in each case.
For many software projects, these framework activities are applied iteratively as a
project progresses. Each iteration produces a software increment that provides a subset of
overall software features and functionality.
Umbrella Activities
Complement the five process framework activities and help team manage and control
progress, quality, change, and risk.
Software project tracking and control: assess progress against the plan and take actions to
maintain the schedule.
Risk management: assesses risks that may affect the outcome and quality.
Software quality assurance: defines and conduct activities to ensure quality.
Technical reviews: assesses work products to uncover and remove errors before going to
the next activity.
Measurement: define and collects process, project, and product measures to ensure
stakeholder’s needs are met.
Software configuration management: manage the effects of change throughout the
software process.
Reusability management: defines criteria for work product reuse and establishes
mechanism to achieve reusable components.
Work product preparation and production: create work products such as models,
documents, logs, forms and lists.
George Polya outlines the essence of problem solving, suggests:
1.
Understand the problem (communication and analysis).
 Who has a stake in the solution to the problem? That is, who are the stakeholders?
 What are the unknowns? What data, functions, and features are required to
properly solve the problem?
 Can the problem be compartmentalized? Is it possible to represent smaller
problems that may be easier to understand?
 Can the problem be represented graphically? Can an analysis model be created?
2.
Plan a solution (modeling and software design).
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 27
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Have you seen similar problems before? Are there patterns that are recognizable
in a potential solution? Is there existing software that implements the data,
functions, and features that are required?
 Has a similar problem been solved? If so, are elements of the solution reusable?
 Can subproblems be defined? If so, are solutions readily apparent for the
subproblems?
 Can you represent a solution in a manner that leads to effective implementation?
Can a design model be created?
3.
Carry out the plan (code generation).
 Does the solutions conform to the plan? Is source code traceable to the design
model?
 Is each component part of the solution provably correct? Has the design and code
been reviewed, or better, have correctness proofs been applied to algorithm?
4.
Examine the result for accuracy (testing and quality assurance).
 Is it possible to test each component part of the solution? Has a reasonable
testing strategy been implemented?
 Does the solution produce results that conform to the data, functions, and features
that are required? Has the software been validated against all stakeholder
requirements?
Insulin pump control system
 A personal insulin pump
o An embedded system in an insulin pump used by diabetics to maintain blood
glucose control.
 Collects data from a blood sugar sensor and calculates the amount of insulin required to
be injected.
 Calculation based on the rate of change of blood sugar levels.
 Sends signals to a micro-pump to deliver the correct dose of insulin.
 Safety-critical system as low blood sugars can lead to brain malfunctioning, coma and
death; high-blood sugar levels have long-term consequences such as eye and kidney
damage
Hardware Architecture
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 28
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Activity model of the insulin pump
Essential high-level requirements
•
•
•
•
The system shall be available to deliver insulin when required.
The system shall perform reliably and deliver the correct amount of insulin to counteract
the current level of blood sugar.
The system must therefore be designed and implemented to ensure that the system always
meets these requirements.
.
PART B (8 marks)
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 29
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
1. Discuss major areas of the application of the software (APR/MAY/2010)
Software Applications
1. Stand-alone applications These are application systems that run on a local computer,
such as a PC. They include all necessary functionality and do not need to be connected to
a network. Examples of such applications are office applications on a PC, CAD
programs, photo manipulation software, etc.
2. Interactive transaction-based applications These are applications that execute on
a remote computer and that are accessed by users from their own PCs or terminals.
Obviously, these include web applications such as e-commerce applications where you
can interact with a remote system to buy goods and services. This class of application
also includes business systems, where a business provides access to its systems through a
web browser or special-purpose client program and cloud-based services, such as mail
and photo sharing. Interactive applications often incorporate a large data store that is
accessed and updated in each transaction.
3. Embedded control systems These are software control systems that control and
manage hardware devices. Numerically, there are probably more embedded systems than
any other type of system. Examples of embedded systems include the software in a
mobile (cell) phone, software that controls anti-lock braking in a car, and software in a
microwave oven to control the cooking process.
4. Batch processing systems These are business systems that are designed to process
data in large batches. They process large numbers of individual inputs to create
corresponding outputs. Examples of batch systems include periodic billing systems, such
as phone billing systems, and salary payment systems.
5. Entertainment systems These are systems that are primarily for personal use and
which are intended to entertain the user. Most of these systems are games of one kind or
another. The quality of the user interaction offered is the most important distinguishing
characteristic of entertainment systems.
6. Systems for modeling and simulation These are systems that are developed by
scientists and engineers to model physical processes or situations, which include many,
separate, interacting objects. These are often computationally intensive and require highperformance parallel systems for execution.
7. Data collection systems These are systems that collect data from their environment
using a set of sensors and send that data to other systems for processing. The software has
to interact with sensors and often is installed in a hostile environment such as inside an
engine or in a remote location.
8. Systems of systems These are systems that are composed of a number of other
software systems. Some of these may be generic software products, such as a spreadsheet
program. Other systems in the assembly may be specially written for that environment.
9. Open world computing—pervasive, ubiquitous, distributed computing due to wireless
networking. How to allow mobile devices, personal computer, enterprise system to
communicate across vast network.
10. Netsourcing—the Web as a computing engine. How to architect simple and sophisticated
applications to target end-users worldwide.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 30
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
11. Open source—”free” source code open to the computing community
a. Data mining
b. Grid computing
c. Cognitive machines
d. Software for nanotechnologies
2. Describe the role of management in software development with the help of examples
(APR/MAY/2010)
3. Explain the following (APR/MAY/2011) (MAY/JUN/2012) (MAY/JUN/2013)
(NOV/DEC/2013)
a. System engineering
OR
4. What is the system modeling? State and explain the restraining fact to construct a
system model (NOV/DEC/2010) ( Answer – only system modeling)
OR
5. Draw a system engineering hierarchy diagram and explain the concept
(NOV/DEC/2011) (NOV/DEC/2013) (NOV/DEC/2014) (MAY/JUNE/2014)
 Software engineering occurs as a consequence of a process called system engineering.
 Instead of concentrating solely on software, system engineering focuses on a variety of elements,
analyzing, designing, and organizing those elements into a system that can be a product, a
service, or a technology for the transformation of information or control. The system engineering
process usually begins with a ―world view. That is, the entire business or product domain is
examined to ensure that the proper business or technology context can be established.
 The world view is refined to focus more fully on specific domain of interest. Within a specific
domain, the need for targeted system elements (e.g., data, software, hardware, people) is
analyzed. Finally, the analysis, design, and construction of a targeted system element is initiated.
At the top of the hierarchy, a very broad context is established and, at the bottom, detailed
technical activities, performed by the relevant engineering discipline (e.g., hardware or software
engineering), is conducted. Stated in a slightly more formal manner, the world view (WV) is
composed of a set of domains (Di), which can each be a system or system of systems in its own
right.
WV = {D1, D2, D3, . . . , Dn}
 Each domain is composed of specific elements (Ej) each of which serves some role in
accomplishing the objective and goals of the domain or component:
Di = {E1, E2, E3, . . . , Em}
 Finally, each element is implemented by specifying the technical components (Ck) that achieve
the necessary function for an element:
Ej = {C1, C2, C3, . . . , Ck}
 It is important to note that the system engineer narrows the focus of work as he or she moves
downward in the hierarchy just described. However, the world view portrays a clear
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 31
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
definition of overall functionality that will enable the engineer to understand the domain, and
ultimately the system or product, in the proper context
System Modeling
System engineering is a modeling process. Whether the focus is on the world view or the
detailed view, the engineer creates models that
• Define the processes that serve the needs of the view under consideration.
• Represent the behavior of the processes and the assumptions on which the behavior is
based.
• Explicitly define both exogenous and endogenous input3 to the model.
• Represent all linkages (including output) that will enable the engineer to better
understand the view.
To construct a system model, the engineer should consider a number of restraining factors:
• Assumptions that reduce the number of possible permutations and variations, thus
enabling a model to reflect the problem in a reasonable manner. As an example, consider
a three-dimensional rendering product used by the entertainment industry to create
realistic animation. One domain of the product enables the representation of 3D human
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 32
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
•
•
•
forms. Input to this domain encompasses the ability to specify movement from a live
human actor, from video, or by the creation of graphical models. The system engineer
makes certain assumptions about the range of allowable human movement (e.g., legs
cannot be wrapped around the torso) so that the range of inputs and processing can be
limited.
Simplifications that enable the model to be created in a timely manner. To illustrate,
consider an office products company that sells and services a broad range of copiers,
faxes, and related equipment. The system engineer is modeling the needs of the service
organization and is working to understand the flow of information that spawns a service
order. Although a service order can be derived from many origins, the engineer
categorizes only two sources: internal demand and external request. This enables a
simplified partitioning of input that is required to generate the service order.
Limitations that help to bound the system. For example, an aircraft avionics system is
being modeled for a next generation aircraft. Since the aircraft will be a two-engine
design, the monitoring domain for propulsion will be modeled to accommodate a
maximum of two engines and associated redundant systems.
Constraints that will guide the manner in which the model is created and the approach
taken when the model is implemented. For example, the technology infrastructure for the
three-dimensional rendering system described previously is a single G4-based processor.
The computational complexity of problems must be constrained to fit within the
processing bounds imposed by the processor.
Preferences that indicate the preferred architecture for all data, functions, and technology.
The preferred solution sometimes comes into conflict with other restraining factors. Yet,
customer satisfaction is often predicated on thedegree to which the preferred approach is
realized.
.
System Simulation
•
•
•
•
In fact, for at least one class of system—the reactive system—we continue to do this
today.
Many computer-based systems interact with the real world in a reactive fashion. That is,
real-world events are monitored by the hardware and software that form the computerbased system, and based on these events; the system imposes control on the machines,
processes, and even people who cause the events to occur. Real-time and embedded
systems often fall into the reactive systems category.
Unfortunately, the developers of reactive systems sometimes struggle to make them
perform properly. Until recently, it has been difficult to predict the performance,
efficiency, and behavior of such systems prior to building them. In a very real sense, the
construction of many real-time systems was an adventure in "flying."
Many systems in the reactive category control machines and/or processes (e.g.,
commercial aircraft or petroleum refineries) that must operate with an extremely high
degree of reliability. If the system fails, significant economic or human loss could occur.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 33
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
Today, software tools for system modeling and simulation are being used to help to
eliminate surprises when reactive, computer-based systems are built. These tools are
applied during the system engineering process, while the role of hardware and software,
databases and people is being specified. Modeling and simulation tools enable a system
engineer to "test drive" a specification of the system.
6. Describe the process model which defines a network of activities (NOV/DEC/2011)
The Concurrent Development Model

The concurrent development model, sometimes called concurrent engineering, The
concurrent process model can be represented schematically as a series of major technical
activities, tasks, and their associated states. For example, the engineering activity defined for
the spiral model is accomplished by invoking the following tasks: prototyping and/or analysis
modeling, requirements specification, and design.
 Figure 2.10 provides a schematic representation of one activity with the concurrent process
model. The activity—analysis—may be in any one of the states10 noted at any given time.
Similarly, other activities (e.g., design or customer communication) can be represented in an
analogous manner.
 All activities exist concurrently but reside in different states. For example, early in a project
the customer communication activity (not shown in the figure) has completed its first
iteration and exists in the awaiting changes state.
 The analysis activity (which existed in the none state while initial customer communication
was completed) now makes a transition into the under development state. If, however, the
customer indicates that changes in requirements must be made, the analysis activity moves
from the under development state into the awaiting changes state.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 34
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 The concurrent process model defines a series of events that will trigger transitions from state
to state for each of the software engineering activities. For example,
 during early stages of design, an inconsistency in the analysis model is uncovered.
 This generates the event analysis model correction which will trigger the analysis activity
from the done state into the awaiting changes state.
 The concurrent process model is often used as the paradigm for the development of
client/server applications. A client/server system is composed of a set of functional
components.
 When applied to client/server, the concurrent process model defines activities in two
dimensions
 a system dimension
o System level issues are addressed using three activities: design, assembly, and use.
 a component dimension
o The component dimension is addressed with two activities: design and realization.
 Concurrency is achieved in two ways:
o system and component activities occur simultaneously and can be modeled using the
state-oriented approach described previously;
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 35
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
o a typical client/server application is implemented with many components, each of
which can be designed and realized concurrently.
 In reality, the concurrent process model is applicable to all types of software development
and provides an accurate picture of the current state of a project. Rather than confining
software engineering activities to a sequence of events, it defines a network of activities.
Each activity on the network exists simultaneously with other activities.
 Events generated within a given activity or at some other place in the activity network trigger
transitions among the states of an activity.
7. Explain the process model that combines the elements of waterfall and iterative
fashion (NOV/DEC/2011)
The Incremental Model
The incremental model combines elements of the linear sequential model or waterfall
model (applied repetitively) with the iterative philosophy of prototyping.
Referring to Figure 2.7, the incremental model applies linear sequences in a staggered fashion as
calendar time progresses. Each linear sequence produces a deliverable “increment” of the
software
For example, word-processing software developed using the incremental paradigm might deliver
basic file management, editing, and document production functions in the first increment; more
sophisticated editing and document production capabilities in the second increment; spelling and
grammar checking in the third increment; and advanced page layout capability in the fourth
increment. It should be noted that the process flow for any increment can incorporate the
prototyping paradigm.
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 review). 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, like prototyping and other evolutionary approaches, is iterative
in nature. But unlike prototyping, the incremental 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.
Incremental development is particularly useful when staffing is unavailable for a complete
implementation by the business deadline that has been established for the project. Early
increments can be implemented with fewer people. If the core product is well received, then
additional staff (if required) can be added to implement the next increment. In addition,
increments can be planned to manage technical risks. For example, a major system might require
the availability of new hardware that is under development and whose delivery date is uncertain.
It might be possible to plan early increments in a way that avoids the use of this hardware,
thereby enabling partial functionality to be delivered to end-users without inordinate delay.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 36
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
8. Suppose you have to develop software for a client with minimum risk involved in
development. But the client is not in a position to define the detailed input and output
requirements. In this situation which software process model would you like to
choose? Justify your answer (MAY/JUN/2012)
OR
9. State as to why the first system is always a throw away system. Explain the concept
with advantages and disadvantages (NOV/DEC/2011)
THE PROTOTYPING MODEL
 Often, a customer defines a set of general objectives for software but does not
identify detailed input, processing, or output requirements. In other cases, the
developer may be unsure of the efficiency of an algorithm, the adaptability of an
operating system, or the form that human/machine interaction should take. In these, and
many other situations, a prototyping paradigm may offer the best approach.
 The prototyping paradigm (Figure 2.5) begins with requirements gathering. Developer
and customer meet and define the overall objectives for the software, identify whatever
requirements are known, and outline areas where further definition is mandatory. A
"quick design" then occurs.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 37
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 The quick design focuses on a representation of those aspects of the software that
will be visible to the customer/user (e.g., input approaches and output formats). The
quick design leads to the construction of a prototype. The prototype is evaluated by the
customer/user and used to refine requirements for the software to be developed. Iteration
occurs as the prototype is tuned to satisfy the needs of the customer, while at the same
time enabling the developer to better understand what needs to be done.
 Ideally, the prototype serves as a mechanism for identifying software requirements. If a
working prototype is built, the developer attempts to use existing program fragments or
applies tools (e.g., report generators, window managers) that enable working programs to
be generated quickly.
 The prototype can serve as "the first system." The one that Brooks recommends we
throw away. But this may be an idealized view. It is true that both customers and
developers like the prototyping paradigm. Users get a feel for the actual system and
developers get to build something immediately.
, prototyping can also be problematic for the following reasons:
1. The customer sees what appears to be a working version of the software, unaware that the
prototype is held together “with chewing gum and baling wire,” unaware that in the rush to get it
working no one has considered overall software quality or long-term maintainability. When
informed that the product must be rebuilt so that high levels of quality can be maintained, the
customer cries foul and demands that "a few fixes" be applied to make the prototype a working
product. Too often, software development management relents.
2. The developer often makes implementation compromises in order to get a prototype working
quickly. An inappropriate operating system or programming language may be used simply
because it is available and known; an inefficient algorithm may be implemented simply to
demonstrate capability.
Although problems can occur, prototyping can be an effective paradigm for software
engineering. The key is to define the rules of the game at the beginning; that is, the customer and
developer must both 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 and maintainability.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 38
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT

The benefits of developing a prototype early in the software process are :






PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Misunderstandings between software developers and users may be
identified as the system functions are demonstrated.
Missing user services may be detected.
Difficult-to-use or confusing user services may be identified and refined.
Software development staff may find incomplete and/or inconsistent
requirements as the prototype is developed.
A working, albeit limited, system is available quickly to demonstrate the
feasibility and usefulness of the application to management.
The prototype serves as a basis for writing the specification for a
production quality system.
Page 39
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT

Software prototypes also have other uses:
 User training
 System testing
 The final stage of the process is prototype evaluation.
 There are non-technical managerial problems which may make it difficult to use
prototyping in some organizations.
Prototyping in the software process
 One way of tackling this difficulty is to use an evolutionary approach to systems
development.
 Alternatively, a deliberate decision might be made to build a 'throw-away' prototype to
help requirements analysis and validation.
 There is an important difference between the objectives of evolutionary and throwaway programming:
o The objective of evolutionary prototyping is to deliver a working system to endusers.
o The objective of throw-away prototyping is to validate or derive the system
requirements.
Evolutionary prototyping
o There are three main problems with evolutionary prototyping which are
particularly important when large,long-lifetime systems are to be developed:
o Difficulties do not mean that evolutionary prototyping should be rejected.
 Throw-away prototyping
o
This approach extends the requirements analysis process with the intention of
reducing overall lige cycle costs.
o Customers and end-users should resist the temptation to turn the throw-away
prototyping into a delivered system that is put into use.
Incremental development



This incremental development model involves developing the requirements and
delivering the system in an incremental fashion.
Incremental development is more manageable than evolutionary prototyping as the
normal software process standards are followed.
A problem with incremental development is that the system architecture has to be
established before the requirements are complete.

Prototyping techniques

There are a number of techniques which have been used for system prototyping.
These include:
o Executable specification languages,
o very high level language,
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 40
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
o application generators and fourth-generation languages,
o Composition of reusable components.
Executable specification languages
o There are practical difficulties in applying this approach.
 Very high level languages
o Very high level languages are programming languages which include powerful
data management facilities.
o Very high level dynamic languages are not normally used for large system
development because they need a large run-time support system.
 Fourth-generation languages
o Fourth-generation languages are successful because there is a great deal of
commonality across data processing applications.
o There is no standardization or uniformity across fourth-generation languages.
Composition of reusable components
o Prototyping with reusable components involves developing a system
specification by taking account of what reusable components are available.
o Prototyping using reusable components is often combined with other approaches
using very high level or fourth-generation languages.
User interface prototyping
 Interface generation systems may be based around user interface management systems
which provide basic user interface functionality such as menu selection, object display
and so on.
 From a software engineering point of view, it is important to realize that user interface
prototyping is an essential part of the process.
10. Differentiate the features of various software lifecycle models highlighting their
advantages and disadvantages (MAY/JUN/2012) (NOV/DEC/2014)
(MAY/JUNE/2014)
SOFTWARE DEVELOPMENT MODELS
A) Original Waterfall Model
The Waterfall model is a conventional, linear,sequentional or traditional waterfall software life
cycle model. It is a sequential development approach, in which development is seen as flowing
steadily downwards through the phases of requirements analysis, design, implementation,
testing (validation), integration, and maintenance.
1) Basic Principles
 Project is divided into sequential phases, with some overlap and splash back acceptable
between phases.
 Emphasis is on planning, time schedules, target dates, budgets and implementation of an
entire system at one time.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 41
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT

Tight control is maintained over the life of the project via extensive written
documentation, formal reviews, and approval/signoff by the user and information
technology management occurring at the end of most phases before beginning the next
phase.
2) Advantage of original water model:
 Each stage has well defined deliverable or milestone.
 It is simple to use and understand
 It acts as template into which methods for analysis, design, code test and maintenance
can be placed.
3) Disadvantage of original water model:
 The biggest disadvantage of the waterfall mode is one of its greatest advantages. You
cannot go back a step; if the design phase has gone wrong, things can get very
complicated in the implementation phase.
 Often, the client is not very clear of what he exactly wants from the software. Any
changes that he mentions in between may cause a lot of confusion.
 Small changes or errors that arise in the completed software may cause a lot of problems.
 Another major disadvantage of the waterfall model is that, until the final stage of the
development cycle is
Complete, a working model of the software does not lie in the hands of the client.
B) Iterative Waterfall Model
1) Basic Principles
 The problems with the Waterfall Model created a demand for a new method of
developing systems which could provide faster results, require less up-front information
and offer greater flexibility.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 42
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT


Iterative model, the project is divided into small parts. This allows the development team
to demonstrate results earlier on in the process and obtain valuable feedback from
system users
each iteration is actually a mini-Waterfall process with the feedback from one phase
providing vital Information for the design of the next phase.
2) Advantages It is much better model of the software process.
 It allows feedback to proceeding stages.
 It can be used for project wherein the requirements are not well understood.
3) Disadvantages It is not easy to manage this model.
 No clear milestones in the development process.
 No stage is really finished.
C) Prototyping Model
Software prototyping is the development approach of activities during software development,
the creation of prototypes, i.e., incomplete versions of the software program being developed.
1) Basic Principles
 Not a standalone, complete development methodology, but rather an approach to
handling selected parts of a larger, more traditional development methodology.
 Attempts to reduce inherent project risk by breaking a project into smaller segments and
providing more ease-of-change during the development process.
 User is involved throughout the development process, which increases the likelihood of
user acceptance of the final implementation.
 Small-scale mock-ups of the system are developed following an iterative modification
process until the Prototype evolves to meet the users requirement.
 While most prototypes are developed with the expectation that they will be discarded, it
is possible in some cases to evolve from prototype to working system.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 43
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT

A basic understanding of the fundamental business problem is necessary to avoid solving
the wrong problem.

2) Advantages Early visibility of the prototype gives users an idea of what the final system looks like
 Encourages active participation among users and producer.
 Enables a higher output for user.
 Cost effective (Development costs reduced)
 Increases system development speed
 Assists to identify any problems with the efficacy of earlier design, requirements analysis
and coding activities.
3) Disadvantages Possibility of causing systems to be left unfinished.
 Possibility of implementing systems before they are ready.
 Producer might produce a system inadequate for overall organization needs.
 Often lack flexibility.
 Not suitable for large applications.
 Project management difficulties.
D) Spiral Model
The spiral model is a software development process combining elements of both design and
prototyping-in-stages, in an effort to combine advantages of top-down and bottom up concepts. It
is a meta-model, a model that can be used by other models.
1) Basic Principles
 Focus is on risk assessment and on minimizing project risk by breaking a project into
smaller segments and providing more ease-of-change during the development process, as
well as providing the opportunity to evaluate risks and weigh consideration of project
continuation throughout the life cycle.
 Each cycle involves a progression through the same sequence of steps, for each part of
the product and for each of its levels of elaboration, from an overall concept-of-operation
document down to the coding of each individual program.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 44
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT

Each trip around the spiral traverses four basic quadrants: (1) determine objectives,
alternatives, and constraints of the iteration; (2) evaluate alternatives; Identify and resolve
risks; (3) develop and verify deliverables from the iteration; and (4) plan the next
iteration.
 Begin each cycle with an identification of stakeholders and their win conditions, and end
each cycle with review and commitment.
 Every time a new prototype is obtained ,it is revaluated again and again by the customer
.so more customer involvement is there.
 Better productivity through reuse capabilities.
 Proper control over cost ,time and manpower requirement for a project work.
 Errors are eliminated in early phases of project development only.
3) Disadvantages This model requires risk identification, its projection, risk assessment and risk
management which is not an easy task.
 Cost and time estimations are also not very easy.
 This model is not suitable for smaller project as then the cost of risk analysis is greater
than cost of the entire project.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 45
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
11. Select any large system or product of your choice. State the assumptions,
simplifications, limitations, constraints and preferences that would have to be made to
build a realizable system model (NOV/DEC/2012)
Software Requirement Specification Hospital Management System
1.1 - Purpose
• The Software is for the automation of Hospital Management.
• It maintains two levels of users:– Administrator Level
– User Level
• The Software includes:PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 46
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– Maintaining Patient details.
– Providing Prescription, Precautions and Diet advice.
– Providing and maintaining all kinds of tests for a patient.
– Billing and Report generation.
1.2 - Scope
• It can be used in any Hospital, Clinic, Dispensary or Pathology labs for maintaining
patient details and their test results.
1.3 - Technologies to be used
• This project will be a desktop application to be developed in VB 6.0 having Ms Access as
backend.
• Database Design (Ms Access)
• Form Design (VB 6.0)
• Coding (VB 6.0)
• Testing (VB 6.0)
• Reporting Tool (Data Report)
1.4 - Overview
• Project is related to Hospital Management System.
• The project maintains two levels of users:• Administrator Level-Doctor
• User Level-Data Entry Operator
• Main facilities available in this project are:• Maintaining records of indoor/outdoor patients.
• Maintaining patients diagnosis details, advised tests to be done.
• Providing different test facilities to a doctor for diagnosis of patients.
• X-Ray
• Urine Test
• Stool Test
• Sonography Test
• Gastroscopy Test
• Colonoscopy Test
• Blood Test
• Biochemistry Test
• Maintaining patient’s injection entry records.
• Maintaining patient’s prescription, medicine and diet advice details.
• Providing billing details for indoor/outdoor patients.
• Maintaining backup of data as per user requirements (between mentioned dates).
• If user forgets his/her password then it can be retrieved by hint question.
• In this project collection of data is from different pathology labs.
• Results of tests, prescription, precautions and diet advice will be automatically updated
in the database.
• Related test reports, patient details report, prescription and billing reports can be
generated as per user requirements.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 47
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
•
User or Administrator can search a patient’s record by his/her name or their registration
date.
Patient’s diet advice can be provided in Hindi.
12. Elaborate on the six elements of computer based systems (MAY/JUN/2013)
A system can be defined as a purposeful collection of inter-related components working
together to achieve some common objective. The system components are dependent on other
system components.
The computer based system can be defined as “a set or an arrangement of elements that are
organized to accomplish some predefined goal by processing information”.
Various elements of computer based system are
 Software - Computer software is a collection of computer programs, data structures and
related documentation that builds the logical method, procedures or control that is
required.
 Hardware - Hardware is a collection of electronic devices that provide computing
capability, interconnectivity devices for communicating with external world connectivity.
Examples of such
 interconnecting components are network switches, telecommunication devices
 People - Users and operators of hardware and software.
 Database - Database is a large and organized collection data that can be accessed by
software
 Documentation - Supporting descriptive information that represents the use and
operation of the system. The documentation can be in the form of hard copy manuals,
online help files or web sites.
 Procedures - A series of steps that define the specific use of each system element.
 The elements combine together to transform the information. Complex systems are
actually a hierarchy of macro-elements that are themselves systems. The role of system
engineer is to define the elements for a specific computer based system by considering
the context of the system.
For example A factory automation system is collection of various systems that themselves
are the combination of various elements. Various Macro-elements such as Numerical control
machine, Robot, Data entry devices form the lowest level of the system. These macro-elements
are basically formed by combining various elements such as hardware, software, procedures, and
databases. These lowest level elements together form manufacturing cell. One or more such cells
form the manufacturing system. Thus the manufacturing system is the next level in the hierarchy.
Along with manufacturing system, inventory control system, database management system build
the factory automation system
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 48
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
13. What are different approaches to the sizing problem (MAY/JUN/2012)
 Sizing represents the project planner’s first major challenge. In the context of project
planning, size refers to a quantifiable outcome of the software project. If a direct
approach is taken, size can be measured in LOC. If an indirect approach is chosen, size is
represented as FP.
 Putnam and Myers suggest four different approaches to the sizing problem:
 “Fuzzy logic” sizing. This approach uses the approximate reasoning techniques that are
the cornerstone of fuzzy logic. To apply this approach, the planner must identify the type
of application, establish its magnitude on a qualitative scale, and then refine the
magnitude within the original range. Although personal experience can be used, the
planner should also have access to a historical database of projects8 so that estimates can
be compared to actual experience.
 Function point sizing. The planner develops estimates of the information domain
characteristics
 Standard component sizing. Software is composed of a number of different “standard
components” that are generic to a particular application area. For example, the standard
components for an information system are subsystems, modules, screens, reports,
interactive programs, batch programs, files, LOC, and object-level instructions. The
project planner estimates the number of occurrences of each standard component and
then uses historical project data to determine the delivered size per standard component.
To illustrate, consider an information systems application. This enables the planner to
estimate that 17,000 LOC will be required for the reports component. Similar estimates
and computation are made for other standard components, and a combined size value
(adjusted statistically) results.
 Change sizing. This approach is used when a project encompasses the use of existing
software that must be modified in some way as part of a project. The planner estimates
the number and type (e.g., reuse, adding code, changing code, deleting code) of
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 49
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
modifications that must be accomplished. Using an “effort ratio” [PUT92] for each type
of change, the size of the change may be estimated
14. .Explain in detail about life cycle process?
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 50
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
15. Explain Win Win Spiral Model.
The spiral model suggests a framework activity that addresses customer communication. The
objective of this activity is to elicit project requirements from the customer. In an ideal context,
the developer simply asks the customer what is required and the customer provides sufficient
detail to proceed. Unfortunately, this rarely happens. In reality, the customer and the developer
enter into a process of negotiation, where the customer may be asked to balance functionality,
performance, and other product or system characteristics against cost and time to market.
The best negotiations strive for a “win-win” result.7 that is, the customer wins by getting
the system or product that satisfies the majority of the customer’s needs and the developer
wins by working to realistic and achievable budgets and deadlines
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 51
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Boehm’s WINWIN spiral model [BOE98] defines a set of negotiation activities at the beginning
of each pass around the spiral. Rather than a single customer communication activity, the
following activities are defined:
1. Identification of the system or subsystem’s key “stakeholders.”8
2. Determination of the stakeholders’ “win conditions.”
3. Negotiation of the stakeholders’ win conditions to reconcile them into a set of win-win
conditions for all concerned (including the software project team).




The WINWIN spiral model is illustrated in Figure 2.9. In addition to the emphasis placed
on early negotiation, the WINWIN spiral model introduces three process milestones,
called anchor points [BOE96], that help establish the completion of one cycle around the
spiral and provide decision milestones before the software project proceeds.
In essence, the anchor points represent three different views of progress as the project
traverses the spiral. The first anchor point, life cycle objectives (LCO), defines a set of
objectives for each major software engineering activity. For example, as part of LCO, a
set of objectives establishes the definition of top-level system/product requirements.
The second anchor point, life cycle architecture (LCA), establishes objectives that must
be met as the system and software architecture is defined. For example, as part of LCA,
the software project team must demonstrate that it has evaluated the applicability of offthe-shelf and reusable software components and considered their impact on architectural
decisions.
Initial operational capability (IOC) is the third anchor point and represents a set of
objectives associated with the preparation of the software for installation/distribution, site
preparation prior to installation, and assistance required by all parties that will use or
support the software.
16. What are the two products used in software engineering
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 52
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Software engineers are concerned with developing software products (i.e., software
which can be sold to a customer). There are two kinds of software products:
1. Generic products
These are stand-alone systems that are produced by a development organization
and sold on the open market to any customer who is able to buy them. Examples of
this type of product include software for PCs such as databases, word processors,
drawing packages, and project-management tools. It also includes so-called vertical
applications designed for some specific purpose such as library information systems,
accounting systems, or systems for maintaining dental records.
2. Customized (or bespoke) products
Software that is commissioned by a specific customer to meet their own needs.
A software contractor develops the software especially for that customer. Examples of
this type of software include control systems for electronic devices, systems written to
support a particular business process, and air traffic control systems
17. Explain software engineering in detail
Software Engineering – Definition
The seminal definition:
[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.
The IEEE definition:
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. (2) The study of approaches as in (1).
Software Engineering – A Layered Technology
 Any engineering approach must rest on organizational commitment to quality which
fosters a continuous process improvement culture.
 Process layer as the foundation defines a framework with activities for effective delivery
of software engineering technology. Establish the context where products (model, data,
report, and forms) are produced, milestone is established, quality is ensured and change is
managed.
 Method provides technical how-to be for building software. It encompasses many tasks
including communication, requirement analysis, design modeling, program construction,
testing and support.
 Tools provide automated or semi-automated support for the process and methods.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 53
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
A Generic phases of software Engineering
The work associated with software engineering can be categorized into three generic
phases, regardless of application area, project size, or complexity.
1. The definition phase focuses on what.
The software engineer attempts to identify what information is to be processed,
what function and performance are desired, what system behavior can be expected, what
interfaces are to be established, what design constraints exist, and what validation criteria
are required to define a successful system. The key requirements of the system and the
software are identified. Although the methods applied during the definition phase will
vary depending on the software engineering paradigm (or combination of paradigms) that
is applied, three major tasks will occur in some form: system or information engineering,
software project planning, and requirements analysis .
2. The development phase focuses on how. That is, during development a software
engineer attempts to define how data are to be structured, how function is to be
implemented within a software architecture, how procedural details are to be
implemented, how interfaces are to be characterized, how the design will be translated
into a programming language (or nonprocedural language), and how testing will be
performed. The methods applied during the development phase will vary, but three
specific technical tasks should always occur: software design , code generation, and
software testing
3. The support phase focuses on change associated with error correction, adaptations
required as the software's environment evolves, and changes due to enhancements
brought about by changing customer requirements. The support phase reapplies the steps
of the definition and development phases but does so in the context of existing software.
Four types of change are encountered during the support phase:
a) Correction. Even with the best quality assurance activities, it is likely that the customer
will uncover defects in the software. Corrective maintenance changes the software to
correct defects.
b) Adaptation. Over time, the original environment (e.g., CPU, operating system, business
rules, external product characteristics) for which the software was developed is likely to
change. Adaptive maintenance results in modification to the software to accommodate
changes to its external environment.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 54
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
c) Enhancement. As software is used, the customer/user will recognize additional
functions that will provide benefit. Perfective maintenance extends the software beyond
its original functional requirements.
d) Prevention. Computer software deteriorates due to change, and because of this,
preventive maintenance, often called software reengineering, must be conducted to
enable the software to serve the needs of its end users. In essence, preventive
maintenance makes changes to computer programs so that they can be more easily
corrected, adapted, and enhanced
18. Explain the software project management in detail
Effective software project management focuses on these items (in this order)
a. The people
(1) Deals with the cultivation of motivated, highly skilled people
(2) Consists of the stakeholders, the team leaders, and the software team
b. The product
(1) Product objectives and scope should be established before a project can be
planned
c. The process
(1) The software process provides the framework from which a comprehensive
plan for software development can be established
d. The project
(1) Planning and controlling a software project is done for one primary
reason…it is the only known way to manage complexity
(2) In a 1998 survey, 26% of software projects failed outright, 46% experienced
cost and schedule overruns
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 55
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
The People: The Stakeholders
• Five categories of stakeholders
– Senior managers – define business issues that often have significant influence on
the project
– Project (technical) managers – plan, motivate, organize, and control the
practitioners who do the work
– Practitioners – deliver the technical skills that are necessary to engineer a
product or application
– Customers – specify the requirements for the software to be engineered and other
stakeholders who have a peripheral interest in the outcome
– End users – interact with the software once it is released for production use
The People: Team Leaders
• Competent practitioners often fail to make good team leaders; they just don’t have the
right people skills
• Qualities to look for in a team leader
– Motivation – the ability to encourage 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
• Team leaders should use a problem-solving management style
– Concentrate on understanding the problem to be solved
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 56
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
–
Manage the flow of ideas
Let everyone on the team know, by words and actions, that quality counts and that
it will not be compromised
• Another set of useful leadership traits
– Problem solving – diagnose, structure a solution, apply lessons learned, remain
flexible
– Managerial identity – take charge of the project, have confidence to assume
control, have assurance to allow good people to do their jobs
– Achievement – reward initiative, demonstrate that controlled risk taking will not
be punished
– Influence and team building – be able to “read” people, understand verbal and
nonverbal signals, be able to react to signals, remain under control in high-stress
situations
The People: The Software Team
• Seven project factors to consider when structuring a software development team
– The difficulty of the problem to be solved
– The size of the resultant program(s) in source lines of code
– The time that the team will stay together
– The degree to which the problem can be modularized
– The required quality and reliability of the system to be built
– The rigidity of the delivery date
– The degree of sociability (communication) required for the project
• Four organizational paradigms for software development teams
– Closed paradigm – traditional hierarchy of authority; works well when
producing software similar to past efforts; members are less likely to be
innovative
– Random paradigm – depends on individual initiative of team members; works
well for projects requiring innovation or technological breakthrough; members
may struggle when orderly performance is required
– Open paradigm – hybrid of the closed and random paradigm; works well for
solving complex problems; requires collaboration, communication, and consensus
among members
– Synchronous paradigm – organizes team members based on the natural pieces
of the problem; members have little communication outside of their subgroups
• Five factors that cause team toxity (i.e., a toxic team environment)
– A frenzied work atmosphere
– High frustration that causes friction among team members
– A fragmented or poorly coordinated software process
– An unclear definition of roles on the software team
– Continuous and repeated exposure to failure
• How to avoid these problems
– Give the team access to all information required to do the job
– Do not modify major goals and objectives, once they are defined, unless
absolutely necessary
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 57
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– Give the team as much responsibility for decision making as possible
– Let the team recommend its own process model
– Let the team establish its own mechanisms for accountability (i.e., reviews)
– Establish team-based techniques for feedback and problem solving
The People: Coordination and Communication Issues
• Key characteristics of modern software make projects fail
– scale, uncertainty, interoperability
• To better ensure success
– Establish effective methods for coordinating the people who do the work
– Establish methods of formal and information communication among team
members
Group Dynamics
• Based on studies published by B. Tuckman in 1965
• Updated later in 1977
• Describes a four-stage model
– Forming
– Storming
– Norming
– Performing
• Forming
– Group members rely on safe, patterned behavior and look to the group leader for
guidance and direction
– Impressions are gathered and similarities and differences are noted
– Serious topics and feelings are avoided
– To grow, members must relinquish the comfort of non-threatening topics and risk
the possibility of conflict
• Storming
– As group members organize for the tasks, conflict inevitably results in their
personal relations and cliques start to form
– Individuals have to bend and mold their feelings to fit the group
– Fear of exposure or fear of failure causes an increased desire for structural
clarification and commitment
– Conflicts arise over leadership, structure, power, and authority
– Member behavior may have wide swings based on emerging issues of
competition and hostilities
– Some members remain silent while others attempt to dominate
• Norming
– Members engage in active acknowledgement of all members’ contributions,
community building, and solving of group issues
– Members are willing to change their preconceived ideas or opinions based on
facts presented by the group
– Leadership is shared, active listening occurs, and cliques dissolve
– Members began to identify with one another, which leads to a level of trust in
their personal relations and contributes to cohesion
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 58
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– Members begin to experience a sense of group belonging
• Performing
– The capacity, range, and depth of personal relations in the group expand to true
interdependence
– Members can work independently, in subgroups, or altogether with equal ability
and success
– The group is most productive, members become self-assuring, and the need for
group approval is past
– Genuine problem solving can occur leading towards optimal solutions
The Product
• The scope of the software development must be established and bounded
– Context – How does the software to be built fit into a larger system, product, or
business context, and what constraints are imposed as a result of the context?
– Information objectives – What customer-visible data objects are produced as
output from the software? What data objects are required for input?
– Function and performance – What functions does the software perform to
transform input data into output? Are there any special performance
characteristics to be addressed?
• Software project scope must be unambiguous and understandable at both the managerial
and technical levels
• Problem decomposition
– Also referred to as partitioning or problem elaboration
– Sits at the core of software requirements analysis
• Two major areas of problem decomposition
– The functionality that must be delivered
– The process that will be used to deliver it
The Process
•
Getting Started
– The project manager must decide which process model is most appropriate based
on
• The customers who have requested the product and the people who will do
the work
• The characteristics of the product itself
• The project environment in which the software team works
– Once a process model is selected, a preliminary project plan is established based
on the process framework activities
– Process decomposition then begins
– The result is a complete plan reflecting the work tasks required to populate the
framework activities
• Project planning begins as a melding of the product and the process based on the various
framework activities
The Project: A Common Sense Approach
• Start on the right foot
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 59
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
Understand the problem; set realistic objectives and expectations; form a good
team
• Maintain momentum
– Provide incentives to reduce turnover of people; emphasize quality in every task;
have senior management stay out of the team’s way
• Track progress
– Track the completion of work products; collect software process and project
measures; assess progress against expected averages
• Make smart decisions
– Keep it simple; use COTS or existing software before writing new code; follow
standard approaches; identify and avoid risks; always allocate more time than you
think you need to do complex or risky tasks
• Conduct a post mortem analysis
– Track lessons learned for each project; compare planned and actual schedules;
collect and analyze software project metrics; get feedback from teams members
and customers; record findings in written form
The Project: Signs that it is in risk
• Software people don't understand their customer's needs
• The product scope is poorly defined
• Changes are managed poorly
• The chosen technology changes
• Business needs change (or are poorly defined)
• Deadlines are unrealistic
• Users are resistant
• Sponsorship is lost (or was never properly obtained)
• The project team lacks people with appropriate skills
• Managers (and practitioners) avoid best practices and lessons learned
The Project: The W5HH Principle
A series of questions that lead to a definition of key project characteristics
and the resultant project plan
• Why is the system being developed?
– Assesses the validity of business reasons and justifications
• What will be done?
– Establishes the task set required for the project
• When will it be done?
– Establishes a project schedule
• Who is responsible for a function?
– Defines the role and responsibility of each team member
• Where are they organizationally located?
– Notes the organizational location of team members, customers, and other
stakeholders
• How will the job be done technically and managerially?
– Establishes the management and technical strategy for the project
• How much of each resource is needed?
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 60
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
Establishes estimates based on the answers to the previous questions
19. Explain the software metrics in detail
What are Metrics?
• Software process and project metrics are quantitative measures
• They are a management tool
• They offer insight into the effectiveness of the software process and the projects that are
conducted using the process as a framework
• Basic quality and productivity data are collected
• These data are analyzed, compared against past averages, and assessed
• The goal is to determine whether quality and productivity improvements have occurred
• The data can also be used to pinpoint problem areas
• Remedies can then be developed and the software process can be improved
Uses of Measurement
• Can be applied to the software process with the intent of improving it on a continuous
basis
• Can be used throughout a software project to assist in estimation, quality control,
productivity assessment, and project control
• Can be used to help assess the quality of software work products and to assist in tactical
decision making as a project proceeds
Reasons to Measure
• To characterize in order to
– Gain an understanding of processes, products, resources, and environments
– Establish baselines for comparisons with future assessments
• To evaluate in order to
– Determine status with respect to plans
• To predict in order to
– Gain understanding of relationships among processes and products
– Build models of these relationships
• To improve in order to
– Identify roadblocks, root causes, inefficiencies, and other opportunities for
improving product quality and process performance
Metrics in the Process Domain
• Process metrics are collected across all projects and over long periods of time
• They are used for making strategic decisions
• The intent is to provide a set of process indicators that lead to long-term software process
improvement
• The only way to know how/where to improve any process is to
– Measure specific attributes of the process
– Develop a set of meaningful metrics based on these attributes
– Use the metrics to provide indicators that will lead to a strategy for improvement
• We measure the effectiveness of a process by deriving a set of metrics based on outcomes
of the process such as
– Errors uncovered before release of the software
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 61
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– Defects delivered to and reported by the end users
– Work products delivered
– Human effort expended
– Calendar time expended
– Conformance to the schedule
– Time and effort to complete each generic activity
Etiquette (good manner) of Process Metrics
• Use common sense and organizational sensitivity when interpreting metrics data
• Provide regular feedback to the individuals and teams who collect measures and metrics
• Don’t use metrics to evaluate individuals
• Work with practitioners and teams to set clear goals and metrics that will be used to
achieve them
• Never use metrics to threaten individuals or teams
• Metrics data that indicate a problem should not be considered “negative”
– Such data are merely an indicator for process improvement
• Don’t obsess on a single metric to the exclusion of other important metrics
Metrics in the Project Domain
• Project metrics enable a software project manager to
– Assess the status of an ongoing project
– Track potential risks
– Uncover problem areas before their status becomes critical
– Adjust work flow or tasks
– Evaluate the project team’s ability to control quality of software work products
• Many of the same metrics are used in both the process and project domain
• Project metrics are used for making tactical decisions
– They are used to adapt project workflow and technical activities
Use of Project Metrics
• The first application of project metrics occurs during estimation
– Metrics from past projects are used as a basis for estimating time and effort
• As a project proceeds, the amount of time and effort expended are compared to original
estimates
• As technical work commences, other project metrics become important
– Production rates are measured (represented in terms of models created, review
hours, function points, and delivered source lines of code)
– Error uncovered during each generic framework activity (i.e, communication,
planning, modeling, construction, deployment) are measured
• Project metrics are used to
– Minimize the development schedule by making the adjustments necessary to
avoid delays and mitigate potential problems and risks
– Assess product quality on an ongoing basis and, when necessary, to modify the
technical approach to improve quality
• In summary
– As quality improves, defects are minimized
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 62
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
As defects go down, the amount of rework required during the project is also
reduced
– As rework goes down, the overall project cost is reduced
Categories of Software Measurement
• Two categories of software measurement
– Direct measures of the
• Software process (cost, effort, etc.)
• Software product (lines of code produced, execution speed, defects
reported over time, etc.)
– Indirect measures of the
• Software product (functionality, quality, complexity, efficiency,
reliability, maintainability, etc.)
• Project metrics can be consolidated to create process metrics for an organization
Size-oriented Metrics
• Derived by normalizing quality and/or productivity measures by considering the size of
the software produced
• Thousand lines of code (KLOC) are often chosen as the normalization value
• Metrics include
– Errors per KLOC
- Errors per person-month
– Defects per KLOC
- KLOC per person-month
– Dollars per KLOC
- Dollars per page of documentation
– Pages of documentation per KLOC
• Size-oriented metrics are not universally accepted as the best way to measure the
software process
• Opponents argue that KLOC measurements
– Are dependent on the programming language
– Penalize well-designed but short programs
– Cannot easily accommodate nonprocedural languages
– Require a level of detail that may be difficult to achieve
Function-oriented Metrics
• Function-oriented metrics use a measure of the functionality delivered by the application
as a normalization value
• Most widely used metric of this type is the function point:
FP = count total * [0.65 + 0.01 * sum (value adj. factors)]
• Material in Chapter 15 covered this in more detail
• Function point values on past projects can be used to compute, for example, the average
number of lines of code per function point (e.g., 60)
Function Point Controversy
• Like the KLOC measure, function point use also has proponents and opponents
• Proponents claim that
• FP is programming language independent
• FP is based on data that are more likely to be known in the early stages of a
project, making it more attractive as an estimation approach
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 63
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
Opponents claim that
• FP requires some “sleight of hand” because the computation is based on
subjective data
• Counts of the information domain can be difficult to collect after the fact
• FP has no direct physical meaning…it’s just a number
• Relationship between LOC and FP depends upon
• The programming language that is used to implement the software
• The quality of the design
• FP and LOC have been found to be relatively accurate predictors of software
development effort and cost
• However, a historical baseline of information must first be established
• LOC and FP can be used to estimate object-oriented software projects
• However, they do not provide enough granularity for the schedule and effort
adjustments required in the iterations of an evolutionary or incremental process
• The table on the next slide provides a rough estimate of the average LOC to one
FP in various programming languages
Language
Average
Median
Low
High
Ada
154
--
104
205
Assembler
337
315
91
694
C
162
109
33
704
C++
66
53
29
178
COBOL
77
77
14
400
Java
55
53
9
214
PL/1
78
67
22
263
Visual
Basic
47
42
16
158
Metrics for Software Quality
•
•
Correctness
– This is the number of defects per KLOC, where a defect is a verified lack of
conformance to requirements
– Defects are those problems reported by a program user after the program is
released for general use
Maintainability
– This describes the ease with which a program can be corrected if an error is
found, adapted if the environment changes, or enhanced if the customer has
changed requirements
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 64
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
Mean time to change (MTTC) : the time to analyze, design, implement, test, and
distribute a change to all users
• Maintainable programs on average have a lower MTTC
Establishing a Metrics Baseline
•
•
•
•
•
By establishing a metrics baseline, benefits can be obtained at the software process,
product, and project levels
The same metrics can serve many masters
The baseline consists of data collected from past projects
Baseline data must have the following attributes
– Data must be reasonably accurate (guesses should be avoided)
– Data should be collected for as many projects as possible
– Measures must be consistent (e.g., a line of code must be interpreted consistently
across all projects)
– Past applications should be similar to the work that is to be estimated
After data is collected and metrics are computed, the metrics should be evaluated and
applied during estimation, technical work, project control, and process improvement
Software Metrics Baseline Process
1) Understand your existing process
2) Define the goals to be achieved by establishing a metrics program
3) Identify metrics to achieve those goals
– Keep the metrics simple
– Be sure the metrics add value to your process and product
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 65
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
4) Identify the measures to be collected to support those metrics
5) Establish a measurement collection process
– What is the source of the data?
– Can tools be used to collect the data?
– Who is responsible for collecting the data?
– When are the data collected and recorded?
– How are the data stored?
– What validation mechanisms are used to ensure the data are correct?
6) Acquire appropriate tools to assist in collection and assessment
7) Establish a metrics database
8) Define appropriate feedback mechanisms on what the metrics indicate about your process
so that the process and the metrics program can be improved
20. Explain the methods carried out in project scheduling
Eight Reasons for Late Software Delivery
• An unrealistic deadline established by someone outside the software engineering group
and forced on managers and practitioners within the group
• Changing customer requirements that are not reflected in schedule changes
• An honest underestimate of the amount of effort and /or the number of resources that will
be required to do the job
• Predictable and/or unpredictable risks that were not considered when the project
commenced
• Technical difficulties that could not have been foreseen in advance
• Human difficulties that could not have been foreseen in advance
• Miscommunication among project staff that results in delays
• A failure by project management to recognize that the project is falling behind schedule
and a lack of action to correct the problem
Handling Unrealistic Deadlines
• Perform a detailed estimate using historical data from past projects; determine the
estimated effort and duration for the project
• Using an incremental model, develop a software engineering strategy that will deliver
critical functionality by the imposed deadline, but delay other functionality until later;
document the plan
• Meet with the customer and (using the detailed estimate) explain why the imposed
deadline is unrealistic
– Be certain to note that all estimates are based on performance on past projects
– Also be certain to indicate the percent improvement that would be required to
achieve the deadline as it currently exists
1) Offer the incremental development strategy as an alternative and offer some options
– Increase the budget and bring on additional resources to try to finish sooner
– Remove many of the software functions and capabilities that were requested
– Dispense with reality and wish the project complete using the prescribed
schedule; then point out that project history and your estimates show that this is
unrealistic and will result in a disaster
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 66
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Project Scheduling
• On large projects, hundreds of small tasks must occur to accomplish a larger goal
– Some of these tasks lie outside the mainstream and may be completed without
worry of impacting on the project completion date
– Other tasks lie on the critical path; if these tasks fall behind schedule, the
completion date of the entire project is put into jeopardy
• Project manager's objectives
– Define all project tasks
– Build an activity network that depicts their interdependencies
– Identify the tasks that are critical within the activity network
– Build a timeline depicting the planned and actual progress of each task
– Track task progress to ensure that delay is recognized "one day at a time"
– To do this, the schedule should allow progress to be monitored and the project to
be controlled
• Software project scheduling distributes estimated effort across the planned project
duration by allocating the effort to specific tasks
• During early stages of project planning, a macroscopic schedule is developed identifying
all major process framework activities and the product functions to which they apply
• Later, each task is refined into a detailed schedule where specific software tasks are
identified and scheduled
• Scheduling for projects can be viewed from two different perspectives
– In the first view, an end-date for release of a computer-based system has already
been established and fixed
• The software organization is constrained to distribute effort within the
prescribed time frame
– In the second view, assume that rough chronological bounds have been discussed
but that the end-date is set by the software engineering organization
• Effort is distributed to make best use of resources and an end-date is
defined after careful analysis of the software
– The first view is encountered far more often that the second
Principles for Project Scheduling
• Compartmentalization
– The project must be compartmentalized into a number of manageable activities,
actions, and tasks; both the product and the process are decomposed
• Interdependency
– The interdependency of each compartmentalized activity, action, or task must be
determined
– Some tasks must occur in sequence while others can occur in parallel
– Some actions or activities cannot commence until the work product produced by
another is available
• Time allocation
– Each task to be scheduled must be allocated some number of work units
– In addition, each task must be assigned a start date and a completion date that are
a function of the interdependencies
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 67
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
Start and stop dates are also established based on whether work will be conducted
on a full-time or part-time basis
• Effort validation
– Every project has a defined number of people on the team
– As time allocation occurs, the project manager must ensure that no more than the
allocated number of people have been scheduled at any given time
• Defined responsibilities
– Every task that is scheduled should be assigned to a specific team member
• Defined outcomes
– Every task that is scheduled should have a defined outcome for software projects
such as a work product or part of a work product
– Work products are often combined in deliverables
• Defined milestones
– Every task or group of tasks should be associated with a project milestone
– A milestone is accomplished when one or more work products has been reviewed
for quality and has been approved
Relationship Between People and Effort
• Common management myth: If we fall behind schedule, we can always add more
programmers and catch up later in the project
– This practice actually has a disruptive effect and causes the schedule to slip even
further
– The added people must learn the system
– The people who teach them are the same people who were earlier doing the work
– During teaching, no work is being accomplished
– Lines of communication (and the inherent delays) increase for each new person
added
Effort Applied vs. Delivery Time
•
•
There is a nonlinear relationship between effort applied and delivery time (Ref: PutnamNorden-Rayleigh Curve)
– Effort increases rapidly as the delivery time is reduced
Also, delaying project delivery can reduce costs significantly as shown in the equation E
= L3/(P3t4) and in the curve below
– E = development effort in person-months
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 68
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– L = source lines of code delivered
– P = productivity parameter (ranging from 2000 to 12000)
– t = project duration in calendar months
40-20-40 Distribution of Effort
• A recommended distribution of effort across the software process is 40% (analysis and
design), 20% (coding), and 40% (testing)
• Work expended on project planning rarely accounts for more than 2 - 3% of the total
effort
• Requirements analysis may comprise 10 - 25%
– Effort spent on prototyping and project complexity may increase this
• Software design normally needs 20 – 25%
• Coding should need only 15 - 20% based on the effort applied to software design
• Testing and subsequent debugging can account for 30 - 40%
– Safety or security-related software requires more time for testing
Example: 100-day project
Task Network
Defining a Task Set
• A task set is the work breakdown structure for the project
• No single task set is appropriate for all projects and process models
– It varies depending on the project type and the degree of rigor (based on
influential factors) with which the team plans to work
• The task set should provide enough discipline to achieve high software quality
– But it must not burden the project team with unnecessary work
Types of Software Projects
•
•
•
•
•
Concept development projects
– Explore some new business concept or application of some new technology
New application development
– Undertaken as a consequence of a specific customer request
Application enhancement
– Occur when existing software undergoes major modifications to function,
performance, or interfaces that are observable by the end user
Application maintenance
– Correct, adapt, or extend existing software in ways that may not be immediately
obvious to the end user
Reengineering projects
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 69
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
Undertaken with the intent of rebuilding an existing (legacy) system in whole or
in part
Concept development projects are approached by applying the following actions:
1.1 Concept scoping determines the overall scope of the project.
1.2 Preliminary concept planning establishes the organization’s ability to undertake the work
implied by the project scope.
1.3 Technology risk assessment evaluates the risk associated with the technology to be
implemented as part of the project scope.
1.4 Proof of concept demonstrates the viability of a new technology in the software context.
1.5 Concept implementation implements the concept representation in a manner that can be
reviewed by a customer and is used for “marketing” purposes when a concept must be sold to
other customers or management.
1.6 Customer reaction to the concept solicits feedback on a new technology concept and targets
specific customer applications.
A process design language approach is used to illustrate the flow of the concept scoping
action:
Task definition: Action 1.1 Concept Scoping
1.1.1 Identify need, benefits and potential customers;
1.1.2 Define desired output/control and input events that drive the application;
Begin Task 1.1.2
1.1.2.1 TR: Review written description of need7
1.1.2.2 Derive a list of customer visible outputs/inputs
1.1.2.3 TR: Review outputs/inputs with customer and revise as required; endtask
Task 1.1.2
1.1.3 Define the functionality/behavior for each major function;
Begin Task 1.1.3
1.1.3.1 TR: Review output and input data objects derived in task 1.1.2;
1.1.3.2 Derive a model of functions/behaviors;
1.1.3.3 TR: Review functions/behaviors with customer and revise as required;
endtask Task 1.1.3
1.1.4 Isolate those elements of the technology to be implemented in software;
1.1.5 Research availability of existing software;
1.1.6 Define technical feasibility;
1.1.7 Make quick estimate of size;
1.1.8 Create a scope definition;
Endtask definition: Action 1.1
Factors that Influence a Project’s Schedule
• Size of the project
• Number of potential users
• Mission criticality
• Application longevity
• Stability of requirements
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 70
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
• Ease of customer/developer communication
• Maturity of applicable technology
• Performance constraints
• Embedded and non-embedded characteristics
• Project staff
• Reengineering factors
Purpose of a Task Network
• Also called an activity network
• It is a graphic representation of the task flow for a project
• It depicts task length, sequence, concurrency, and dependency
• Points out inter-task dependencies to help the manager ensure continuous progress
toward project completion
• The critical path
– A single path leading from start to finish in a task network
– It contains the sequence of tasks that must be completed on schedule if the project
as a whole is to be completed on schedule
– It also determines the minimum duration of the project
• All project tasks are listed in the far left column
• The next few columns may list the following for each task: projected start date, projected
stop date, projected duration, actual start date, actual stop date, actual duration, task interdependencies (i.e., predecessors)
• To the far right are columns representing dates on a calendar
• The length of a horizontal bar on the calendar indicates the duration of the task
• When multiple bars occur at the same time interval on the calendar, this implies task
concurrency
• A diamond in the calendar area of a specific task indicates that the task is a milestone; a
milestone has a time duration of zero
Figure 1.1 illustrates the format of a time-line chart. It depicts a part of a software project
schedule that emphasizes the concept scoping task for a word-processing (WP) software product.
All project tasks (for concept scoping) are listed in the left hand column. The horizontal bars
indicate the duration of each task. When multiple bars occur at the same time on the calendar,
task concurrency is implied. The diamonds indicate milestones.
Once the information necessary for the generation of a time-line chart has been input, the
majority of software project scheduling tools produce project tables—a tabular listing of all
project tasks, their planned and actual start and end dates, and a variety of related information in
figure 1.2
Fig-1.1: A task network for concept development
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 71
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
An example Time-line chart
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 72
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING UNIT I SOFTWARE
PROCESS AND PROJECT MANAGEMENT
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 73
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING UNIT I SOFTWARE
PROCESS AND PROJECT MANAGEMENT
Figure 1.2: An example project table
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 74
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING UNIT I SOFTWARE
PROCESS AND PROJECT MANAGEMENT
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 75
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING UNIT I SOFTWARE
PROCESS AND PROJECT MANAGEMENT
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 76
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Methods for Tracking the Schedule
•
Qualitative approaches
– Conduct periodic project status meetings in which each team member reports
progress and problems
– Evaluate the results of all reviews conducted throughout the software engineering
process
– Determine whether formal project milestones (i.e., diamonds) have been
accomplished by the scheduled date
– Compare actual start date to planned start date for each project task listed in the
timeline chart
– Meet informally with the software engineering team to obtain their subjective
assessment of progress to date and problems on the horizon
• Quantitative approach
– Use earned value analysis to assess progress quantitatively
Project Control and Time Boxing
• The project manager applies control to administer project resources, cope with problems,
and direct project staff
• If things are going well (i.e., schedule, budget, progress, milestones) then control should
be light
• When problems occur, the project manager must apply tight control to reconcile the
problems as quickly as possible. For example:
– Staff may be redeployed
– The project schedule may be redefined
• Severe deadline pressure may require the use of time boxing
– An incremental software process is applied to the project
– The tasks associated with each increment are “time-boxed” (i.e., given a specific
start and stop time) by working backward from the delivery date
– The project is not allowed to get “stuck” on a task
– When the work on a task hits the stop time of its box, then work ceases on that
task and the next task begins
– This approach succeeds based on the premise that when the time-box boundary is
encountered, it is likely that 90% of the work is complete
– The remaining 10% of the work can be
• Delayed until the next increment
• Completed later if required
Tracking Progress on an OO Project
 Technical milestone: OO analysis completed
• All classes and the class hierarchy have been defined and reviewed.
• Class attributes and operations associated with a class have been defined
and reviewed.
• Class relationships (Chapter 8) have been established and reviewed.
• A behavioral model (Chapter 8) has been created and reviewed.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 77
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
• Reusable classes have been noted.
 Technical milestone: OO design completed
• The set of subsystems (Chapter 9) has been defined and reviewed.
• Classes are allocated to subsystems and reviewed.
• Task allocation has been established and reviewed.
• Responsibilities and collaborations (Chapter 9) have been identified.
• Attributes and operations have been designed and reviewed.
• The communication model has been created and reviewed.
 Technical milestone: OO programming completed
• Each new class has been implemented in code from the design model.
• Extracted classes (from a reuse library) have been implemented.
• Prototype or increment has been built.
 Technical milestone: OO testing
• The correctness and completeness of OO analysis and design models has
been reviewed.
• A class-responsibility-collaboration network (Chapter 6) has been
developed and reviewed.
• Test cases are designed and class-level tests (Chapter 19) have been
conducted for each class.
• Test cases are designed and cluster testing (Chapter 19) is completed and
the classes are integrated.
• System level tests have been completed.
Scheduling for WebApp Projects
WebApp project scheduling distributes estimated effort across the planned time line
(duration) for building each WebApp increment. This is accomplished by allocating the effort to
specific tasks. It is important to note, however, that the overall WebApp schedule evolves over
time. During the first iteration, a macroscopic schedule is developed. This type of schedule
identifies all WebApp increments and projects the dates on which each will be deployed. As the
development of an increment gets under way, the entry for the increment on the macroscopic
schedule is refined into a detailed schedule. Here, specific development tasks (required to
accomplish an activity) are identified and scheduled.
As an example of macroscopic scheduling, consider the SafeHomeAssured.com
WebApp. Recalling earlier discussions of SafeHomeAssured.com, seven increments can be
identified for the Web-based component of the project:
 Increment 1: Basic company and product information
 Increment 2: Detailed product information and downloads
 Increment 3: Product quotes and processing product orders
 Increment 4: Space layout and security system design
 Increment 5: Information and ordering of monitoring services
 Increment 6: Online control of monitoring equipment
 Increment 7: Accessing account information
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 78
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Time line for macroscopic project schedule
It is important to note that the deployment dates (represented by diamonds on the timeline chart) are preliminary and may change as more detailed scheduling of the increments occurs.
However, this macroscopic schedule provides management with an indication of when content
and functionality will be available and when the entire project will be completed. As a
preliminary estimate, the team will work to deploy all increments with a 12-week time line. It’s
also worth noting that some of the increments will be developed in parallel (e.g., increments 3, 4,
6 and 7). This assumes that the team will have sufficient people to do this parallel work.
Once the macroscopic schedule has been developed, the team is ready to schedule work
tasks for a specific increment. To accomplish this, you can use a generic process framework that
is applicable for all WebApp increments. A task list is created by using the generic tasks derived
as part of the framework as a starting point and then adapting these by considering the content
and functions to be derived for a specific WebApp increment.
Each framework action (and its related tasks) can be adapted in one of four ways:
a. a task is applied as is,
b. a task is eliminated because it is not necessary for the increment,
c. a new (custom) task is added, and
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 79
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
d. a task is refined (elaborated) into a number of named subtasks that each becomes part
of the schedule.
To illustrate, consider a generic design modeling action for WebApps that can be
accomplished by applying some or all of the following tasks:
 Design the aesthetic for the WebApp.
 Design the interface.
 Design the navigation scheme.
 Design the WebApp architecture.
 Design the content and the structure that supports it.
 Design functional components.
 Design appropriate security and privacy mechanisms.
 Review the design.
As an example, consider the generic task Design the Interface as it is applied to the fourth
increment of SafeHomeAssured.com. The team recognizes that the interface design is pivotal
to the success of the increment and decides to refine (elaborate) the task. The following subtasks
are derived for the
Design the Interface task for the fourth increment:
• Develop a sketch of the page layout for the space design page.
• Review layout with stakeholders.
• Design space layout navigation mechanisms.
• Design “drawing board” layout.10
• Develop procedural details for the graphical wall layout function.
• Develop procedural details for the wall length computation and display function.
• Develop procedural details for the graphical window layout function.
• Develop procedural details for the graphical door layout function.
• Design mechanisms for selecting security system components (sensors, cameras,
microphones, etc.).
• Conduct pair walkthroughs as required.
These tasks become part of the increment schedule for the fourth WebApp increment and are
allocated over the increment development schedule. They can be input to scheduling software
and used for tracking and control.
Description of Earned Value Analysis
• Earned value analysis is a measure of progress by assessing the percent of completeness
for a project
• It gives accurate and reliable readings of performance very early into a project
• It provides a common value scale (i.e., time) for every project task, regardless of the type
of work being performed
• The total hours to do the whole project are estimated, and every task is given an earned
value based on its estimated percentage of the total
Determining Earned Value
• The budgeted cost of work scheduled (BCWS) is determined for each work task
represented in the schedule.
• BCWSi is the effort planned for work task i.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 80
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
•
To determine progress at a given point along the project schedule, the value of BCWS is
the sum of the BCWSi values for all work tasks that should have been completed by that
point in time on the project schedule.
The BCWS values for all work tasks are summed to derive the budget at completion,
BAC. Hence,
BAC = ∑ (BCWSk) for all tasks k
•
•
•
•
Next, the value for budgeted cost of work performed (BCWP) is computed.
The value for BCWP is the sum of the BCWS values for all work tasks that have actually
been completed by a point in time on the project schedule.
“the distinction between the BCWS and the BCWP is that the former represents the
budget of the activities that were planned to be completed and the latter represents the
budget of the activities that actually were completed.” [Wil99]
Given values for BCWS, BAC, and BCWP, important progress indicators can be
computed:
– Schedule performance index
SPI = BCWP/BCWS
–
•
•
•
•
•
•
•
•
Schedule variance,
SV = BCWP – BCWS
SPI is an indication of the efficiency with which the project is utilizing scheduled
resources.
Compute the budgeted cost of work scheduled (BCWS) for each work task i in the
schedule
– The BCWS is the effort planned; work is estimated in person-hours or persondays for each task
– To determine progress at a given point along the project schedule, the value of
BCWS is the sum of the BCWSi values of all the work tasks that should have
been completed by that point of time in the project schedule
Sum up the BCWS values for all work tasks to derive the budget at completion (BAC)
Compute the value for the budgeted cost of work performed (BCWP)
– BCWP is the sum of the BCWS values for all work tasks that have actually been
completed by a point of time on the project schedule
Percent scheduled for completion = BCWS/BAC
– provides an indication of the percentage of work that should have been completed
by time t.
Percent complete = BCWP/BAC
– provides a quantitative indication of the percent of completeness of the project at
a given point in time, t.
Actual cost of work performed, ACWP, is the sum of the effort actually expended on
work tasks that have been completed by a point in time on the project schedule. It is then
possible to compute
Cost performance index, CPI = BCWP/ACWP
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 81
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
Cost variance, CV = BCWP – ACWP
21. Explain various software size estimation techniques in detail
The overall goal of project planning is to establish a pragmatic strategy for controlling,
tracking, and monitoring a complex technical project.
Project Planning Task Set
 Establish project scope
 Determine feasibility
 Analyze risks
 Risk analysis is considered in detail in Chapter 25.
 Define required resources
 Determine require human resources
 Define reusable software resources
 Identify environmental resources
 Estimate cost and effort
 Decompose the problem
 Develop two or more estimates using size, function points, process tasks or usecases
 Reconcile the estimates
 Develop a project schedule
 Establish a meaningful task set
 Define a task network
 Use scheduling tools to develop a timeline chart
 Define schedule tracking mechanisms
Project Estimation
 Estimation of resources, cost, and schedule for a software engineering effort requires
 experience
 access to good historical information (metrics)
 the courage to commit to quantitative predictions when qualitative information is
all that exists
 Estimation carries inherent risk and this risk leads to uncertainty
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 82
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
To Understand Scope
 Understand the customer’s needs
 understand the business context
 understand the project boundaries
 understand the customer’s motivation
 understand the likely paths for change
 Software scope describes
 the functions and features that are to be delivered to end-users
 the data that are input and output
 the “content” that is presented to users as a consequence of using the software
 the performance, constraints, interfaces, and reliability that bound the system.
 Scope is defined using one of two techniques:
 A narrative description of software scope is developed after
communication with all stakeholders.
 A set of use-cases is developed by end-users.
Resources
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 83
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
software
tools
number
skills
hardware
people
environment
location
network
resources
project
OTS
components
reusable
software
full-experience
components
new
components
part.-experience
components
The planner begins by evaluating software scope and selecting the skills required to
complete development. Both organizational position (e.g., manager, senior software engineer)
and specialty (e.g., telecommunications, database, client-server) are specified. For relatively
small projects (a few person-months), a single individual may perform all software engineering
tasks, consulting with specialists as required. For larger projects, the software team may be
geographically dispersed across a number of different locations. Hence, the location of each
human resource is specified.
The number of people required for a software project can be determined only after an
estimate of development effort (e.g., person-months) is made. Techniques for estimating effort
are discussed later in this chapter.
Reusable Software Resources
Component-based software engineering (CBSE) emphasizes reusability—that is, the
creation and reuse of software building blocks. Such building blocks, often called components,
must be cataloged for easy reference, standardized for easy application, and validated for easy
integration.
Bennatan suggests four software resource categories that should be considered as
planning proceeds:
 Off-the-shelf components. Existing software that can be acquired from a third party or from
a past project. COTS (commercial off-the-shelf) components are purchased from a third
party, are ready for use on the current project, and have been fully validated.
 Full-experience components. Existing specifications, designs, code, or test data developed
for past projects that are similar to the software to be built for the current project. Members
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 84
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
of the current software team have had full experience in the application area represented by
these components. Therefore, modifications required for full-experience components will be
relatively low risk.
 Partial-experience components. Existing specifications, designs, code, or test data
developed for past projects that are related to the software to be built for the current project
but will require substantial modification. Members of the current software team have only
limited experience in the application area represented by these components. Therefore,
modifications required for partial-experience components have a fair degree of risk.
 New components. Software components must be built by the software team specifically for
the needs of the current project.
Environmental Resources
The environment that supports a software project, often called the software engineering
environment (SEE), incorporates hardware and software. Hardware provides a platform that
supports the tools (software) required to produce the work products that are an outcome of good
software engineering practice.
When a computer-based system (incorporating specialized hardware and software) is to
be engineered, the software team may require access to hardware elements being developed by
other engineering teams. For example, software for a robotic device used within a manufacturing
cell may require a specific robot (e.g., a robotic welder) as part of the validation test step; a
software project for advanced page layout may need a high-speed digital printing system at some
point during development. Each hardware element must be specified as part of planning.
Project Estimation
Software cost and effort estimation will never be an exact science. Too many variables—
human, technical, environmental, political—can affect the ultimate cost of software and effort
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 85
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
applied to develop it. However, software project estimation can be transformed from a black art
to a series of systematic steps that provide estimates with acceptable risk.
To achieve reliable cost and effort estimates, a number of options arise:
1) Delay estimation until late in the project (obviously, we can achieve 100 percent accurate
estimates after the project is complete!).
2) Base estimates on similar projects that have already been completed.
3) Use relatively simple decomposition techniques to generate project cost and effort estimates.
4) Use one or more empirical models for software cost and effort estimation.
• Option #1 is not practical, but results in good numbers
• Option #2 can work reasonably well, but it also relies on other project influences being
roughly equivalent
• Options #3 and #4 can be done in tandem to cross check each other
Estimation Techniques
 Past (similar) project experience
 Conventional or Decomposition techniques
 These take a "divide and conquer" approach
 Cost and effort estimation are performed in a stepwise fashion by breaking down
a project into major functions and related software engineering activities
 Empirical estimation models
 Offer a potentially valuable estimation approach if the historical data used to seed
the estimate is good
 Automated tools
Decomposition Techniques
•
Before an estimate can be made and decomposition techniques applied, the planner must
– Understand the scope of the software to be built
– Generate an estimate of the software’s size
• Then one of two approaches are used
– Problem-based estimation
• Based on either source lines of code or function point estimates
– Process-based estimation
• Based on the effort required to accomplish each task
Software project estimation is a form of problem solving, and in most cases, the problem
to be solved (i.e., developing a cost and effort estimate for a software project) is too complex to
be considered in one piece.
software sizing
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 86
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
The Estimation Accuracy is Predicated on
 the degree to which the planner has properly estimated the size of the product to
be built
 the ability to translate the size estimate into human effort, calendar time, and
dollars (a function of the availability of reliable software metrics from past
projects)
 the degree to which the project plan reflects the abilities of the software team
 the stability of product requirements and the environment that supports the
software engineering effort.
Consider the software sizing problem. Because a project estimate is only as good as the
estimate of the size of the work to be accomplished, sizing represents your first major challenge
as a planner. In the context of project planning, size refers to a quantifiable outcome of the
software project. If a direct approach is taken, size can be measured in lines of code (LOC). If an
indirect approach is chosen, size is represented as function points (FP).
Putnam and Myers [Put92] suggest four different approaches to the sizing problem:
• “Fuzzy logic” sizing. This approach uses the approximate reasoning techniques that are
the cornerstone of fuzzy logic. To apply this approach, the planner must identify the type
of application, establish its magnitude on a qualitative scale, and then refine the
magnitude within the original range.
• Function point sizing. The planner develops estimates of the information domain
characteristics
• Standard component sizing. Software is composed of a number of different “standard
components” that are generic to a particular application area. For example, the standard
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 87
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
components for an information system are subsystems, modules, screens, reports,
interactive programs, batch programs, files, LOC, and object-level instructions. The
project planner estimates the number of occurrences of each standard component and
then uses historical project data to estimate the delivered size per standard component.
• Change sizing. This approach is used when a project encompasses the use of existing
software that must be modified in some way as part of a project. The planner estimates
the number and type (e.g., reuse, adding code, changing code, deleting code) of
modifications that must be accomplished.
The results of these estimates are used to compute an optimistic (low), a most likely,
and a pessimistic (high) value for software size
Problem-Based Estimation
1) Start with a bounded statement of scope
2) Decompose the software into problem functions that can each be estimated individually
3) Compute an LOC or FP value for each function
4) Derive cost or effort estimates by applying the LOC or FP values to your baseline
productivity metrics (e.g., LOC/person-month or FP/person-month)
5) Combine function estimates to produce an overall estimate for the entire project
 In general, the LOC/pm and FP/pm metrics should be computed by project domain
 Important factors are team size, application area, and complexity
 LOC and FP estimation differ in the level of detail required for decomposition with each
value
 For LOC, decomposition of functions is essential and should go into considerable detail
(the more detail, the more accurate the estimate)
 For FP, decomposition occurs for the five information domain characteristics and the 14
adjustment factors
Inputs
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Outputs
Enquirie
s
Internal
Logical
Files
External
Interfac
e Files
Page 88
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 External inputs, external outputs, external inquiries, internal logical files, external
interface files
 For both approaches, the planner uses lessons learned to estimate an optimistic, most
likely, and pessimistic size value for each function or count (for each information domain
value)
 Then the expected size value S is computed as follows:
S = (Sopt + 4Sm + Spess)/6
 Historical LOC or FP data is then compared to S in order to cross-check it
.
Conventional Methods:
LOC/FP Approach
LOC and FP estimation are distinct estimation techniques.
 compute LOC/FP using estimates of information domain values
 use historical data to build estimates for the project
.
Functional Decomposition
Example: LOC Approach
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 89
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 For example, the range of LOC estimates for the 3D geometric analysis function is
optimistic, 4600 LOC; most likely, 6900 LOC; and pessimistic, 8600 LOC. the expected
value for the 3D geometric analysis function is 6800 LOC by applying this





S = (Sopt + 4Sm + Spess)/6 = (4600+4X6900+8600)
= 40,800/6 = 6800 LOC
Productivity = size/effort
= KilosLOC/person month
Quality = errors/size
= errors/KLOC
Cost = $/KLOC
Documentation = pages/KLOC
Effort will be given
 Average productivity for systems of this type =
 Burdened labor rate =$8000 per month,
 The cost per line of code is approximately =
33200
54
= 620 LOC/pm.
$8000
620 𝐿𝑂𝐶 𝑝𝑒𝑟𝑠𝑜𝑛 𝑚𝑜𝑛𝑡ℎ
= $12.90 ≈ $13
 Based on the LOC estimate and the historical productivity data,
 The total estimated project cost is = (33200 X 13) = $431,000
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 90
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 The estimated effort is =
𝒆𝒔𝒕𝒊𝒎𝒂𝒕𝒆𝒅 𝒍𝒊𝒏𝒆 𝒐𝒇 𝒄𝒐𝒅𝒆𝒔
𝟑𝟑𝟐𝟎𝟎
𝒂𝒗𝒆𝒓𝒂𝒈𝒆 𝒑𝒓𝒐𝒅𝒖𝒄𝒕𝒊𝒗𝒊𝒕𝒚
𝟔𝟐𝟎 𝑳𝑶𝑪?𝒑𝒎
= 54 person-months.
Example: FP Approach
Information
Domain Value
opt
likely
pass
Estimated count
Weight
Number of
inputs
Number of
outputs
Number of
inquiries
Number of files
Number of
external
interfaces
Count total
20
24
30
24.33
4
FP count
= estimated count X
weight
97.33
12
15
22
15.66
5
78.3
16
22
28
22
5
110
4
2
4
2
5
3
4.16
2.16
10
7
41.6
15.1
= (Sopt + 4Sm + Spess)/6
342.33
The estimated number of FP is derived:
The factor varies from 0.65 (if each Fi is set to 0) to 1.35 (if each Fi is set to 5)
FPestimated = count total * VAF
VAF= [0.65 + (0.01 * ∑ (Fi))] = .65 + (.01*52) = 1.17
FPestimated = count total * VAF
342 * 1.17 = 400.14 ≈ 400
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 91
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Where
 The Fi (i = 1 to 14) are value adjustment factors (VAF) based on responses to the
 following questions [Lon02]:

Each of these questions is answered using a scale that ranges from 0 (not important or
applicable) to 5 (absolutely essential)
 Each of the complexity weighting factors is estimated, and the value adjustment factor is
computed FPestimated = 400
 Organizational average productivity =


𝐹𝑃estimated
𝑝𝑒𝑟𝑠𝑜𝑛−𝑚𝑜𝑛𝑡ℎ
=
400
58
= 6.8 FP/pm.
Burdened labor rate = $8000 per month,
The cost per FP count is approximately =
𝑎𝑣𝑒𝑟𝑎𝑔𝑒 𝑙𝑎𝑏𝑜𝑟 𝑟𝑎𝑡𝑒
𝑎𝑣𝑒𝑟𝑎𝑔𝑒 𝑝𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑣𝑖𝑡𝑦
8000
=
6.8
= $1176/FP.
 Based on the FP estimate and the historical productivity data, total estimated project cost
is $461,000 and estimated effort is 58 person-months.
 The total estimated project cost is = FPestimated * cost /FPcount
= (400 * 1230) = $461,000
Example :
Functional units
External Inputs
External Outputs
External Inquiries
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Low
3
4
3
Average
4
5
4
High
6
7
5
Page 92
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Internal logical files
(ILF)
External interface
files (EIF)
7
10
15
5
7
10
Consider a project with the following functional units: 50 user inputs,40 user outputs,35 user
enquiries,6 user files,4 external interfaces. Assume all complexity adjustment factors and
weighting factors are average. Compute the function points for the project. Suppose that
program needs 70 LOC per FP. Find out the size of complete project
Unadjusted Function point = 50 × 4 + 40 × 5 + 35 × 4 + 6 × 10 + 4 × 7
= 200 + 200 + 140 + 60 + 28
= 628
FPestimated = count total * VAF
VAF= [0.65 + (0.01 * ∑ (Fi))] = .65 + (.01* 52) = 1.17
FPestimated = count total * VAF
342 * 1.17 = 400.14 ≈ 400
STOCK CONTROL SYSTEM - estimating the time needed to develop application
Let's imagine a company which sells goods on the phone - if agents call the customers,
customers call the agents, and so on - business operates successfully, but there comes a time for
putting the whole in order. There occurs a need for developing a system able to control the whole
stock, from orders to payments. Our thing is to estimate how complex such system can be and
- after that - try to predict how long it would take to develop it.
At first, we should pay attention to the functionality - what exactly the system should be
able to do. Basically, it should be able to take care about three parts - customers, stock, and
transactions.
Then, let us group functions into five categories:
External Inputs - customer, order, stock, and payment details. There are four things we need to
consider.
External Outputs - customer, order, and stock details, and credit rating. Once again, there are
four things to consider.
External Inquiries - the system is requested for three things, which are customer, order, and stock
details.
External Interface Files - there's no EIFs to consider.
Internal Logical Files - finally, the four elements belong to the last group. Customer, and good
files, and customer, and good transaction files.
Let's predict every function's complexity is low, so the values can be presented in a table:
Category
Multiplier
Weight
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 93
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
EI
EO
EQ
ILF
4
4
3
4
3
4
3
7
 Basic" Function Points:
BFP = 4 EI + 5 EO + 4 EQ + 10 ILF + 7 EIF
–
–
–
–
–
–
External inputs (EI): input screens and tables.
External outputs (EO): output screens and reports.
External inquiries (EQ): prompts and interrupts.
Internal files (ILF): databases and directories.
External interfaces (EIF): shared mathematical routines.
(With + / - 25% Complexity Adjustment)
= 4*3+4*4+3*3+4*7=65 [Function Points]
Some sources prove that one function point is an equivalent of eight hours of work in C++
language.
= 65*8=520 [hours]. The estimate for developing the application would take
about 520 hours of work.
Process-Based Estimation
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 94
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Activity
CC
Planning
Risk
Analysis
Task
Engineering
Construction
Release
analysis
design
code
test
0.50
0.75
0.50
0.50
0.50
0.25
0.50
2.50
4.00
4.00
3.00
3.00
2.00
2.00
0.40
0.60
1.00
1.00
0.75
0.50
0.50
5.00
2.00
3.00
1.50
1.50
1.50
2.00
4.50
16.50
CE
Totals
n/a
n/a
n/a
n/a
n/a
n/a
n/a
8.40
7.35
8.50
6.00
5.75
4.25
5.00
Function
UICF
2DGA
3DGA
CGDF
DSM
PCF
DAM
Totals
0.25
0.25
0.25
3.50
20.50
% effort
1%
1%
1%
8%
45%
10%
46.00
36%
CC = customer communication CE = customer evaluation
TOTAL UICF = 0.50+2.50+0.40+5.00 = 8.40
TOTAL 2DGA = 0.75+4.00+0.60+2.00 = 7.36
TOTAL 3DGA = 0.50+4.00+1.00+3.00 = 8.50
TOTAL CGDF = 0.50+3.00+1.00+1.50 = 6.00
TOTAL DSM = 0.50+3.00+0.75+1.50 = 5.75
TOTAL PCF = 0.25+2.00+0.50+1.50 = 4.25
TOTAL DAM = 0.50+2.00+0.50+2.00 = 5.00
TOTAL = 8.40+7.36+8.50+6.00+5.75+4.25+5.00 = 45.26 ≈46
 The estimated effort is 46 person-months.
 Based on an average burdened labor rate of $8,000 per month (Average labor rates (i.e.,
cost/unit effort)
 The total estimated project cost is = TOTAL estimated effort * Average labor rate
= 46*8000 = $368,000
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 95
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Empirical estimation mode
The empirical data that support most estimation models are derived from a limited
sample of projects. For this reason, no estimation model is appropriate for all classes of software
and in all development environments. Therefore, you should use the results obtained from such
models judiciously.
An estimation model should be calibrated to reflect local conditions. The model should
be tested by applying data collected from completed projects, plugging the data into the model,
and then comparing actual to predicted results. If agreement is poor, the model must be tuned
and retested before it can be used.
The Structure of Estimation Models
A typical estimation model is derived using regression analysis on data collected from
past software projects. The overall structure of such models takes the form
Where A, B, and C are empirically derived constants, E is effort in person-months, and ev is the
estimation variable (either LOC or FP). The majority of estimation models have some form of
project adjustment component that enables E to be adjusted by other project characteristics (e.g.,
problem complexity, staff experience, development environment). Among the many LOC-
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 96
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
oriented estimation models proposed in the literature are
Cost Estimation
 Approximate judgement of the costs for a project. It should be done throughout the entire
life cycle.
 Why we need?
 To determine how much effort and time a software project requires.
 Important for making good management decisions.
 It facilitates competitive contract bids.
 It affect the planning and budgeting of a project.
Development Mode of S/W Projects
Mode
Organic
Semi
Detached
Embedded
Project
Size
Typically
2-50 KLOC
Typically
50300KLOC
Typically
over
300KLOC
Nature of
Project
Small size
project,
Experienced
developers.
Medium size
project and
team.
Large project,
Real-time
systems
Innovation
Deadline
Little
Not Tight
Medium
Medium
Significant
Tight
Constructive Cost Model(COCOMO )
 The COCOMO model is a single variable software cost estimation model developed by
Barry Boehm in 1981.
 The model uses a basic regression formula, with parameters that are derived from
historical project data and current project characteristics.
Hierarchy of Cocomo Model
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 97
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
1. Basic COCOMO model
2. Intermediate COCOMO model
3. Detailed COCOMO model
Basic COCOMO Model
 It take the form:
Effort(E) = ab * (KLOC)bb(in Person-months)
DevelopmentTime(D) = cb * (E) db (in month)
Average staff size(SS) = E/D (in Person)
Productivity(P) = KLOC / E (in KLOC/Person-month)
Project
Organic
Semidetached
Embedded
ab
2.4
3.0
3.6
bb
1.05
1.12
1.20
cb
2.5
2.5
2.5
db
0.38
0.35
0.32
Example
 A project size of 200KLOC is to be developed.S/W development team has average
experience on similar type of projects.The project schedule is not very
tight.Calculate the effort and development time of the project.
Ans: 200 KLOC implies semi-detached mode.
Hence, E= 3.0 * (200)1.12 = 1133.12 PM
D=2.5 * (1133.12)0.35 = 29.3 M
Avg. staff size(SS) = E/D
= 1133.12/29.3=38.67 Persons.
Productivity (P) = KLOC/E
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 98
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
= 200/1133.12=0.1765 KLOC/PM
Intermediate COCOMO
 Extension of Basic COCOMO
 Why Use ?
Basic model lacks accuracy
 Computes software development effort as a function of program size and set of 15 Cost
Drivers
 Cost Driver: A multiplicative factor that determines the effort required to complete the
software project.
 Why Cost Drivers?
Adjust the nominal cost of a project to the actual project Environment.
 For each Characteristics, Estimator decides the scale factor
Cost Drivers
• Personnel Factors
– Applications experience
– Programming language experience
– Virtual machine experience
– Personnel capability
– Personnel experience
– Personnel continuity
– Platform experience
– Language and tool experience
• Product Factors
– Required software reliability
– Database size
– Software product complexity
– Required reusability
– Documentation match to life cycle needs
– Product reliability and complexity
• Platform Factors
– Execution time constraint
– Main storage constraint
– Computer turn-around time
– Virtual machine volatility
– Platform volatility
– Platform difficulty
• Project Factors
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 99
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– Use of software tools
– Use of modern programming practices
– Required development schedule
– Classified security application
– Multi-site development
– Requirements volatility
The calculation is done as follows
 Multiply all 15 Cost Drivers to get Effort Adjustment Factor(EAF)
 E(Effort) = ab(KLOC)bb * EAF(in Person-Month)
 D(Development Time) = cb(E)db (in month)
 SS (Avg Staff Size) = E/D (in persons)
 P (Productivity) = KLOC/E (in KLOC/Person-month)
Project
ab
bb
cb
db
Organic
3.2 1.05 2.5 0.38
Semidetached 3.0 1.12 2.5 0.35
Embedded
2.8 1.20 2.5 0.32
Example
A new project with estimated 400 KLOC embedded system has to be developed. Project
manager hires developers of low quality but a lot of experience in programming language.
Calculate the Effort, Development time, Staff size & Productivity.
Cost
Very Low Nominal High Very Extra
Drivers Low
High High
AEXP
1.29 1.13 1.00
0.91 0.82 -LEXP
1.14
1.07 1.00
0.95
--
--
EAF = 1.29 * 0.95 = 1.22
400 LOC implies Embedded System
Effort = 2.8*(400)1.20 * 1.225 = 3712 * 1.22 = 4528 person-months
Development Time = 2.5 * (4528)0.32 = 2.5 * 14.78 = 36.9 months
Avg. Staff Size = E/D = 4528/36.9 = 122 persons
Productivity = KLOC/Effort = 400/4528 = 0.0884 KLOC/person-month
Detailed COCOMO
 Detailed COCOMO = Intermediate COCOMO +assessment of Cost Drivers impact
on each phase.
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 100
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
 Phases
1) Plans and requirements
2) System Design
3) Detailed Design
4) Module code and test
5) Integrate and test
• Cost of each subsystem is estimated separately. This reduces the margin of error.
The Calculation
 Multiply all 15 Cost Drivers to get Effort Adjustment Factor(EAF)
 E(Effort) = ab(KLOC)bb * EAF(in Person-Month)
 D(Development Time) = cb(E)db (in month)
 Ep (Total Effort) = µp * E (in Person-Month)
 Dp (Total Development Time) = τp * D (in month)
Example
Consider a project to develop a full screen editor. The major components identified and their
sizes are (i) Screen Edit – 4K (ii) Command Lang Interpreter – 2K (iii) File Input and Output –
1K (iv) Cursor movement – 2K (v) Screen Movement – 3K. Assume the Required software
reliability is high, product complexity is high, analyst capability is high & programming
language experience is low. Use COCOMO model to estimate cost and time for different phases.
Size of modules : 4 + 2 + 1 + 2 + 3 = 13 KLOC [Organic]
Cost
Very Low Nominal High Very Extra
Drivers Low
High High
RELY
0.75 0.88 1.00
1.15 1.40 -CPLX
0.70
0.85 1.00
1.15
1.30
ACAP
1.46
1.19 1.00
0.86
0.71
LEXP
1.14
1.07 1.00
0.95
--
1.65
--
EAF = 1.15 * 1.15 * 0.86 * 1.07 = 1.2169
Initial Effort (E) = ab(KLOC)bb * EAF = 3.2*(12)1.05 * 1.2169
= 52.9 person-months
Initial Development Time = cb(E)db =2.5*(52.9)0.38 = 11.29 months
Phase value of µp and τp
Organic Small µp
Organic Small τp
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Plan &
Reqr
System
Design
Detail
Design
0.06
0.10
0.16
0.19
0.26
0.24
Module
code &
test
0.42
0.39
Integrati
on &
Test
0.16
0.18
Page 101
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
Phase wise effort & development time distribution
E
D
Dp (in months)
11.29
Ep (in personmonths)
0.06*52.9 = 3.17
Plan &
Requirement
System Design
52.9
52.9
11.29
0.16*52.9=8.46
0.19*11.29=2.14
Detail Design
52.9
11.29
0.26*52.9=13.74
0.24*11.29=2.70
Module code &
test
Integration &
test
52.9
11.29
0.42*52.9=22.21
0.39*11.29=4.40
52.9
11.29
0.16*52.9=8.46
0.18*11.29=2.03
0.10*11.29=1.12
22. Explain the Risk Management in detail
Definition of Risk
• A risk is a potential problem – it might happen and it might not
• Conceptual definition of risk
– Risk concerns future happenings
– Risk involves change in mind, opinion, actions, places, etc.
– Risk involves choice and the uncertainty that choice entails
• Two characteristics of risk
– Uncertainty – the risk may or may not happen, that is, there are no 100% risks
(those, instead, are called constraints)
– Loss – the risk becomes a reality and unwanted consequences or losses occur
•
•
•
•
Risk Categorization – Approach #1
Project risks
– They threaten the project plan
– If they become real, it is likely that the project schedule will slip and that costs
will increase
Technical risks
– They threaten the quality and timeliness of the software to be produced
– If they become real, implementation may become difficult or impossible
Business risks
– They threaten the viability of the software to be built
– If they become real, they jeopardize the project or the product
Sub-categories of Business risks
– Market risk – building an excellent product or system that no one really wants
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 102
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
–
–
–
Strategic risk – building a product that no longer fits into the overall business
strategy for the company
Sales risk – building a product that the sales force doesn't understand how to sell
Management risk – losing the support of senior management due to a change in
focus or a change in people
Budget risk – losing budgetary or personnel commitment
Risk Categorization – Approach #2
• Known risks
– Those risks that can be uncovered after careful evaluation of the project plan, the
business and technical environment in which the project is being developed, and
other reliable information sources (e.g., unrealistic delivery date)
• Predictable risks
– Those risks that are extrapolated from past project experience (e.g., past turnover)
• Unpredictable risks
– Those risks that can and do occur, but are extremely difficult to identify in
advance
Reactive vs. Proactive Risk Strategies
• Reactive risk strategies
– The majority of software teams and managers rely on this approach
– Nothing is done about risks until something goes wrong
• The team then flies into action in an attempt to correct the problem rapidly
(fire fighting)
– Crisis management is the choice of management techniques
• Proactive risk strategies
– Steps for risk management are followed
– Primary objective is to avoid risk and to have a contingency plan in place to
handle unavoidable risks in a controlled and effective manner
Steps for Risk Management
1) Identify possible risks; recognize what can go wrong
2) Analyze each risk to estimate the probability that it will occur and the impact (i.e.,
damage) that it will do if it does occur
3) Rank the risks by probability and impact
- Impact may be negligible, marginal, critical, and catastrophic
4) Develop a contingency plan to manage those risks having high probability and high
impact
Risk Identification
Risk identification is a systematic attempt to specify threats to the project plan
By identifying known and predictable risks, the project manager takes a first step toward
avoiding them when possible and controlling them when necessary
• Generic risks
•
•
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 103
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
•
– Risks that are a potential threat to every software project
Product-specific risks
– Risks that can be identified only by those a with a clear understanding of the
technology, the people, and the environment that is specific to the software that is
to be built
– This requires examination of the project plan and the statement of scope
Risk Item Checklist
• Used as one way to identify risks
• Focuses on known and predictable risks in specific subcategories (see next slide)
• Can be organized in several ways
– A list of characteristics relevant to each risk subcategory
– Questionnaire that leads to an estimate on the impact of each risk
– A list containing a set of risk component and drivers and their probability of
occurrence
Known and Predictable Risk Categories
• Product size – risks associated with overall size of the software to be built
• Business impact – risks associated with constraints imposed by management or the
marketplace
• Customer characteristics – risks associated with sophistication of the customer and the
developer's ability to communicate with the customer in a timely manner
• Process definition – risks associated with the degree to which the software process has
been defined and is followed
• Development environment – risks associated with availability and quality of the tools to
be used to build the project
• Technology to be built – risks associated with complexity of the system to be built and
the "newness" of the technology in the system
• Staff size and experience – risks associated with overall technical and project experience
of the software engineers who will do the work
Questionnaire on Project Risk
1) Have top software and customer managers formally committed to support the project?
2) Are end-users enthusiastically committed to the project and the system/product to be
built?
3) Are requirements fully understood by the software engineering team and its customers?
4) Have customers been involved fully in the definition of requirements?
5) Do end-users have realistic expectations?
6) Is the project scope stable?
7) Does the software engineering team have the right mix of skills?
8) Are project requirements stable?
9) Does the project team have experience with the technology to be implemented?
10) Is the number of people on the project team adequate to do the job?
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 104
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
11) Do all customer/user constituencies agree on the importance of the project and on the
requirements for the system/product to be built?
Risk Components and Drivers
•
•
•
The project manager identifies the risk drivers that affect the following risk components
– Performance risk - the degree of uncertainty that the product will meet its
requirements and be fit for its intended use
– Cost risk - the degree of uncertainty that the project budget will be maintained
– Support risk - the degree of uncertainty that the resultant software will be easy to
correct, adapt, and enhance
– Schedule risk - the degree of uncertainty that the project schedule will be
maintained and that the product will be delivered on time
The impact of each risk driver on the risk component is divided into one of four impact
levels
– Negligible, marginal, critical, and catastrophic
Risk drivers can be assessed as impossible, improbable, probable, and frequent
Risk Projection (Estimation)
•
Risk projection (or estimation) attempts to rate each risk in two ways
– The probability that the risk is real
– The consequence of the problems associated with the risk, should it occur
• The project planner, managers, and technical staff perform four risk projection steps (see
next slide)
• The intent of these steps is to consider risks in a manner that leads to prioritization
• Be prioritizing risks, the software team can allocate limited resources where they will
have the most impact
Risk Projection/Estimation Steps
1)
2)
3)
4)
Establish a scale that reflects the perceived likelihood of a risk (e.g., 1-low, 10-high)
Delineate the consequences of the risk
Estimate the impact of the risk on the project and product
Note the overall accuracy of the risk projection so that there will be no misunderstandings
Contents of a Risk Table
•
•
A risk table provides a project manager with a simple technique for risk projection
It consists of five columns
– Risk Summary – short description of the risk
– Risk Category – one of seven risk categories (slide 12)
– Probability – estimation of risk occurrence based on group input
– Impact – (1) catastrophic (2) critical (3) marginal (4) negligible
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 105
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
RMMM – Pointer to a paragraph in the Risk Mitigation, Monitoring, and
Management Plan
Risk
Summary
Risk
Category
Probability
Impact
(1-4)
RMMM
Developing a Risk Table
• List all risks in the first column (by way of the help of the risk item checklists)
• Mark the category of each risk
• Estimate the probability of each risk occurring
• Assess the impact of each risk based on an averaging of the four risk components to
determine an overall impact value
• Sort the rows by probability and impact in descending order
• Draw a horizontal cutoff line in the table that indicates the risks that will be given further
attention
Assessing Risk Impact
• Three factors affect the consequences that are likely if a risk does occur
– Its nature – This indicates the problems that are likely if the risk occurs
– Its scope – This combines the severity of the risk (how serious was it) with its
overall distribution (how much was affected)
– Its timing – This considers when and for how long the impact will be felt
• The overall risk exposure formula is
RE = P x C
– P = the probability of occurrence for a risk
– C = the cost to the project should the risk actually occur
• Example
– P = 80% probability that 18 of 60 software components will have to be developed
– C = Total cost of developing 18 components is $25,000
– RE = .80 x $25,000 = $20,000
Risk Mitigation, Monitoring, and Management
•
•
An effective strategy for dealing with risk must consider three issues
(Note: these are not mutually exclusive)
– Risk mitigation (i.e., avoidance)
– Risk monitoring
– Risk management and contingency planning
Risk mitigation (avoidance) is the primary strategy and is achieved through a plan
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 106
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
– Example: Risk of high staff turnover
Strategy for Reducing Staff Turnover
 Meet with current staff to determine causes for turnover (e.g., poor working conditions,
low pay, competitive job market)
 Mitigate those causes that are under our control before the project starts
 Once the project commences, assume turnover will occur and develop techniques to
ensure continuity when people leave
 Organize project teams so that information about each development activity is widely
dispersed
 Define documentation standards and establish mechanisms to ensure that documents are
developed in a timely manner
 Conduct peer reviews of all work (so that more than one person is "up to speed")
 Assign a backup staff member for every critical technologist
 During risk monitoring, the project manager monitors factors that may provide an
indication of whether a risk is becoming more or less likely
 Risk management and contingency planning assume that mitigation efforts have failed
and that the risk has become a reality
 RMMM steps incur additional project cost
 Large projects may have identified 30 – 40 risks
 Risk is not limited to the software project itself
 Risks can occur after the software has been delivered to the user
 Software safety and hazard analysis
 These are software quality assurance activities that focus on the identification and
assessment of potential hazards that may affect software negatively and cause an entire
system to fail
 If hazards can be identified early in the software process, software design features can be
specified that will either eliminate or control potential hazards
The RMMM Plan
• The RMMM plan may be a part of the software development plan (Paragraph 5.19.1) or
may be a separate document
• Once RMMM has been documented and the project has begun, the risk mitigation, and
monitoring steps begin
– Risk mitigation is a problem avoidance activity
– Risk monitoring is a project tracking activity
• Risk monitoring has three objectives
– To assess whether predicted risks do, in fact, occur
– To ensure that risk aversion steps defined for the risk are being properly applied
– To collect information that can be used for future risk analysis
• The findings from risk monitoring may allow the project manager to ascertain what risks
caused which problems throughout the project
Seven Principles of Risk Management
• Maintain a global perspective
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 107
YEAR/SEMESTER : II/IV SUB/CODE: CS6403 SOFTWARE ENGINEERING
UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT
–
•
•
•
•
•
•
•
View software risks within the context of a system and the business problem that
is is intended to solve
Take a forward-looking view
– Think about risks that may arise in the future; establish contingency plans
Encourage open communication
– Encourage all stakeholders and users to point out risks at any time
Integrate risk management
– Integrate the consideration of risk into the software process
Emphasize a continuous process of risk management
– Modify identified risks as more becomes known and add new risks as better
insight is achieved
Develop a shared product vision
– A shared vision by all stakeholders facilitates better risk identification and
assessment
Encourage teamwork when managing risk
– Pool the skills and experience of all stakeholders when conducting risk
management activities
However, the time spent in risk management results in
– Less disturbance during the project
– A greater ability to track and control a project
– The confidence that comes with planning for problems before they occur
– Risk management can absorb a significant amount of the project planning effort
Recording Risk Information
Project: Embedded software for XYZ system
Risk type: schedule risk
Priority (1 low ... 5 critical): 4
Risk factor: Project completion will depend on tests which require hardware component
under development. Hardware component delivery may be delayed
Probability: 60 %
Impact: Project completion will be delayed for each day that hardware is unavailable for
use in software testing
Monitoring approach:
Scheduled milestone reviews with hardware group
Contingency plan:
Modification of testing strategy to accommodate delay using software simulation
Estimated resources: 6 additional person months beginning in July
PREPARED BY
DR.S.PADMAPRIYA
DEPT. OF IT
Page 108
Download