Software Engineering Lab Manual
Software Engineering Lab Manual
Technology
SOFTWARE ENGINEERING
(3150711)
5th SEMESTER
Laboratory Manual
COMPUTER ENGINEERING DEPARTMENT
VISION
To be recognized for the quality education and research in the field of Information Technology
known for its accomplished graduates.
MISSION
The mission of Computer Engineering Department, Silver Oak College of Engineering and
Technology, Ahmedabad is to:
1. Continually improve the standard of our graduates by engaging in innovative teaching
learning methods with high caliber motivated faculty members keeping in-line with the rapid
technological advancements.
2. Promote and support research activities over a wide range of academic interests among
students and staff for growth of individual knowledge and continuous learning.
3. Provide an education system that promotes innovation, creativity, entrepreneurial spirit,
leadership as well as freedom of thought with emphasis on professionalism and ethical
behavior.
PEO1: To provide fundamental knowledge of science and engineering for an IT professional and
equipped with proficiency of mathematical foundations and algorithmic principles and inculcate
competent problem-solving ability.
PEO2: To implant ability in creativity & design of IT systems and transmit knowledge and skills to
analyze, design, test and implement various software applications.
PEO3: To exhibit leadership capability, triggering social and economical commitment and inculcate
community services.
PEO4: To inculcate professional-social ethics, teamwork in students and acquaint them with
requisite technical and managerial skills to attain a successful career.
ii
PROGRAM OUTCOMES (POs)
Engineering Graduates will be able to:
1. Engineering knowledge: Apply the knowledge of mathematics, science, engineering fundamentals, and an
engineering specialization to the solution of complex engineering problems.
2. Problem analysis: Identify, formulate, review research literature, and analyze complex engineering problems
reaching substantiated conclusions using first principles of mathematics, natural sciences, and engineering
sciences.
3. Design/development of solutions: Design solutions for complex engineering problems and design system
components or processes that meet the specified needs with appropriate consideration for the public health and
safety, and the cultural, societal, and environmental considerations.
4. Conduct investigations of complex problems: Use research-based knowledge and research methods including
design of experiments, analysis and interpretation of data, and synthesis of the information to provide valid
conclusions.
5. Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern engineering and IT
tools including prediction and modeling to complex engineering activities with an understanding of the
limitations.
6. The engineer and society: Apply reasoning informed by the contextual knowledge to assess societal, health,
safety, legal and cultural issues and the consequent responsibilities relevant to the professional engineering
practice.
7. Environment and sustainability: Understand the impact of the professional engineering solutions in societal and
environmental contexts, and demonstrate the knowledge of, and need for sustainable development.
8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms of the
engineering practice.
9. Individual and team work: Function effectively as an individual, and as a member or leader in diverse teams,
and in multidisciplinary settings.
10. Communication: Communicate effectively on complex engineering activities with the engineering community
and with society at large, such as, being able to comprehend and write effective reports and design
documentation, make effective presentations, and give and receive clear instructions.
11. Project management and finance: Demonstrate knowledge and understanding of the engineering and
management principles and apply these to one’s own work, as a member and leader in a team, to manage projects
and in multidisciplinary environments.
12. Life-long learning: Recognize the need for, and have the preparation and ability to engage in independent and
life-long learning in the broadest context of technological change.
iii
SOFTWARE ENGINEERING PRACTICAL BOOK
PREFACE
It gives us immense pleasure to present the second edition of Software Engineering Practical Book
for the B.E. 3rd year students of Silver Oak College of Engineering Technology.
The theory and laboratory course of Software Engineering, at Silver Oak College of Engineering
Technology, Ahmedabad, is designed in such a manner that students can develop the basic
understanding of the subject during theory classes and gain the hands-on practical experience during
their laboratory sessions. Software engineering is a field that is vitally important to computer
technology as a whole. Software engineering is the application of engineering principles to the
design, development and implementation of software.
The Laboratory Manual presented here to you takes you onto learning journey of various software
development lifecycle processes including waterfall (linear), incremental approaches (such as
Unified process), and agile approaches. In this course you will explore how to prepare technical
documentations and make presentations on various aspects of a software development project,
including the technical aspects (architecture, design, quality assurance) as well as the managerial
aspects (planning, scheduling, and delivery). You will experience how to work collaboratively in a
small team environment to develop a moderate-sized software system from conceptualization to
completion, including requirements elicitation, system modelling, system design, implementation,
unit and system testing, integration, source code management configuration management, and release
management. The lab manual course also covers software testing and quality assurance techniques at
the module level, and understand these techniques at the system and organization level.
1. Be prompt in arriving to the laboratory and always come well prepared for the experiment.
2. Students need to maintain a proper decorum in the computer lab. Students must use the equipment with
care. Any damage is caused is punishable.
3. Students are instructed to come to lab in formal dresses only.
4. Students are supposed to occupy the systems allotted to them and are not supposed to talk or make noise
in the lab.
5. Students are required to carry their observation book and lab records with completed exercises while
entering the lab.
6. Lab records need to be submitted every week.
7. Students are not supposed to use pen drives in the lab.
8. The grades for the Software Engineering Practical course work will be awarded based on your
performance in the laboratory, regularity, recording of experiments in the Software Engineering practical
Final Notebook, lab quiz, regular viva-voce and end-term examination.
9. Find the answers of all the questions mentioned under the section ‘Find the Answers’ at the end of each
experiment in the Software Engineering Practical Book.
v
CERTIFICATE
vi
TABLE OF CONTENT
Page No Marks
Sr. Date of Date of
Experiment Title Sign (out of
No Start Completion
10)
To From
Study complete software development
life cycle and analyze various
1
activities conducted as a part of each
phase.
Study software requirements and
identify the requirements from any
2
problem statement and develop
Software Requirement Specification.
Study Object Oriented Design using
3 UML and prepare Use-Case, ER,
Activity, Sequence, Class diagrams.
Study System Modelling using Data
4
Flow Diagrams.
Study Project Estimation techniques,
5
FP analysis and COCOMO model.
Study Project Scheduling Techniques
/Tools. Critical Path Method (CPM),
6 Project Evaluation and Review
Technique (Pert), Gantt Chart And
Work-Breakdown Structure.
Study Software Risk Analysis and
7
Management.
Study Software Testing and designing
8
Test Suites.
Study Estimation of Test Coverage
9
Metrics and Structural Complexity.
Prepare Case Study of any one topic
given below.
1. Project Management Tools
10 2. SCM Tools
3. SQA Tools
4. Testing Tool
vii
PRACTICAL SET - 1
STUDY COMPLETE SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) AND
ANALYZE VARIOUS ACTIVITIES CONDUCTED AS A PART OF EACH PHASE.
What is SDLC?
The Software Development Lifecycle is a systematic process for building software that ensures
the quality and correctness of the software built. SDLC process aims to produce high-quality
software which meets customer expectations. The software development should be complete in
the pre-defined time frame and cost.
SDLC consists of a detailed plan which explains how to plan, build, and maintain specific
software. Every phase of the SDLC lifecycle has its own process and deliverables that feed into
the next phase.
Why SDLC?
Here, are prime reasons why SDLC is important for developing a software system.
SDLC Phases
1
Phase 1: Requirement Analysis:
The requirement is the first stage in the SDLC process. It is conducted by the senior team
members with inputs from all the stakeholders and domain experts in the industry. Planning for
the quality assurance requirements and recognization of the risks involved is also done at this
stage.
This stage gives a clearer picture of the scope of the entire project and the anticipated issues,
opportunities, and directives which triggered the project.
Requirements Gathering stage need teams to get detailed and precise requirements. This helps
companies to finalize the necessary timeline to finish the work of that system.
Once the requirement analysis phase is completed the next step is to define and document
software needs. This process conducted with the help of 'Software Requirement Specification'
document also known as 'SRS' document. It includes everything which should be designed and
developed during the project life cycle.
Phase 3: Design:
In this third phase, the system and software design documents are prepared as per the
requirement specification document. This helps define overall system architecture. This design
phase serves as input for the next phase of the model.
Once the system design phase is over, the next phase is implementation. In this phase, developers
start building the entire system by writing code using the chosen programming language. In the
coding phase, tasks are divided into units or modules and assigned to the various developers. It is
the longest phase of the Software Development Life Cycle process.
In this phase, Developer needs to follow certain predefined coding guidelines. They also need to
use programming tools like compiler, interpreters, debugger to generate and implement the code.
Phase 5: Testing:
Once the software is complete, and it is deployed in the testing environment. The testing team
starts testing the functionality of the entire system. This is done to verify that the entire
application works according to the customer requirement.
During this phase, QA and testing team may find some bugs/defects which they communicate to
developers. The development team fixes the bug and send back to QA for a re-test. This process
continues until the software is bug-free, stable, and working according to the business needs of
that system.
Once the software testing phase is over and no bugs or errors left in the system then the final
deployment process starts. Based on the feedback given by the project manager, the final
software is released and checked for deployment issues if any.
Phase 7: Maintenance:
Once the system is deployed, and customers start using the developed system, following 3
activities occur
Bug fixing - bugs are reported because of some scenarios which are not tested at all
Upgrade - Upgrading the application to the newer versions of the Software
Enhancement - Adding some new features into the existing software
3
The main focus of this SDLC phase is to ensure that needs continue to be met and that the
system continues to perform as per the specification mentioned in the first phase.
SDLC models
Prescriptive Model
o Waterfall Model
References:
4
Aim: Study and document any two process model with its introduction, diagram, advantages and
disadvantages.
The waterfall model gets its name from the fact that the first diagrams of this
process illustrated it as a series of terraces over which a stream flowed, cascading
down from one level to another. The point of this portrayal was that water always
flows downhill — it can’t reverse itself. Similarly, the defining characteristic of
the waterfall model is the irreversible forward progress from phase to phase.
5
Advantages:-
Disadvantage:-
Iterative/Incremental Development
6
There is a greater emphasis on producing intermediate versions, each
adding a small amount of additional functionality. Some of these
are releases, either external (released outside the team) or internal (seen
only by the team), which may have been planned earlier.
o Or the “horizontal” approach of working “top down” and implementing the most
abstract code (the GUI or command-line interfaces), then functions that they call,
then the … ending with the lowest-level ADTS that don’t call on anything else.
Advantages:-
Disadvantages:-
7
Post Practical Questions:
1. Selection of a model is based on
a) Requirements
b) Development team & Users
c) Project type and associated risk
d) All of the mentioned
2. Which two models doesn’t allow defining requirements early in the cycle?
a) Waterfall & RAD
b) Prototyping & Spiral
c) Prototyping & RAD
d) Waterfall & Spiral
3. What is the major advantage of using Incremental Model?
a) Customer can respond to each increment
b) Easier to test and debug
c) It is used when there is a need to get a product to the market early
d) Easier to test and debug when there is a need to get a product to the market early
4. What is the major drawback of using RAD Model?
a) Highly specialized & skilled developers/designers are required
b) Increases reusability of components
c) Encourages customer/client feedback
d) Increases reusability of components, Highly specialized & skilled developers/designers
are required
5. If you were lead developer of Software Company and you are asked to submit project
/product within a stipulated time-frame with no cost barriers, which model you select?
a) Waterfall
b) Spiral
c) RAD
d) Incremental
6. Which one of the following models is not suitable for accommodating any change?
a) Build & Fix Model
b) Prototyping Model
c) RAD Model
d) Waterfall Model
8
7. Choose the correct option from given below:
a) Prototyping Model facilitates reusability of components
b) RAD Model facilitates reusability of components
c) Both RAD & Prototyping Model facilitates reusability of components
d) None
8. A company is developing an advance version of their current software available in the
market, what model approach would they prefer?
a) RAD
b) Iterative Enhancement
c) Both RAD & Iterative Enhancement
d) Spiral
9. Agile Software Development is based on
a) Incremental Development
b) Iterative Development
c) Linear Development
d) Both Incremental and Iterative Development
10. Which of the following does not apply to agility to a software process?
a) Uses incremental product delivery strategy
b) Only essential work products are produced
c) Eliminate the use of project planning and testing
d) All of the mentioned
Conclusion:
Here we conclude Study and document any two process model with its introduction, diagram,
advantages and disadvantages.
9
PRACTICAL SET– 2
STUDY SOFTWARE REQUIREMENTS IN DETAIL.
IEEE defines requirement as (1) A condition or capability needed by a user to solve a problem
or achieve an objective. (2) A condition or capability that must be met or possessed by a system
or system component to satisfy a contract, standard, specification, or other formally imposed
documents. (3) A documented representation of a condition or capability as in (1) or (2).
Requirements describe how a system should act, appear or perform. For this, when users request
for software, they provide an approximation of what the new system should be capable of doing.
Requirements differ from one user to another and from one business process to another.
It is necessary and important that before we start planning, design and implementation of the
software system for our client, software development team must be clear about it's requirements.
If they don't have a clear vision of what is to be developed and what all features are expected,
there would be serious problems and customer dissatisfaction as well.
Characteristics of Requirements
Requirements gathered for any new system to be developed should exhibit the following three
properties:
Completeness: A particular requirement for a system should specify what the system
should do and also what it should not. For example, consider software to be developed
for ATM. If a customer enters an amount greater than the maximum permissible
withdrawal amount, the ATM should display an error message, and it should not dispense
any cash.
Atomic: Means it should be at very low level of details which should not be possible to
separate out into components.
Traceable: One should be able to trace a requirement to a design component and then to
a code segment in the program. Similarly, one should be able to trace a requirement to the
corresponding test cases.
Categorization of Requirements
Based on the target audience or subject matter, requirements can be classified into different
types, as stated below:
User requirements: They are written in natural language so that both customers can
verify their requirements have been correctly identified
System requirements: They are written involving technical terms and/or specifications,
and are meant for the development or testing teams
Requirements can be classified into two groups based on what they describe:
IEEE defines functional requirements as 'a function that a system or component must be
able to perform.' These requirements describe the interaction of software with its
environment and specify the inputs, outputs, external interfaces, and the functions that
should be included in the software. Also, the services provided by functional
requirements specify the procedure by which the software should react to particular
inputs or behave in particular situations.
o Portability requirements: Describe the ease with which the software can be
transferred from one platform to another. For example, it should be easy to port
the software to a different operating system without the need to redesign the entire
software.
12
o Usability requirements: Describe the ease with which users are able to operate
the software. For example, the software should be able to provide access to
functionality with fewer keystrokes and mouse clicks.
Organizational requirements: These requirements are derived from the policies and
procedures of an organization. Organizational requirements comprise the following.
o Delivery requirements: Specify when the software and its documentation are to
be delivered to the user.
External requirements: These requirements include all the requirements that affect
the software or its development process externally. External requirements comprise
the following.
o Ethical requirements: Specify the rules and regulations of the software so that
they are acceptable to users.
o Legislative requirements: Ensure that the software operates within the legal
jurisdiction. For example, pirated software should not be sold.
References:
[1] Rajib Mall, Fundamentals of software Engineering, Prentice Hall of India.
[2] https://nptel.ac.in/courses/pdf_link/106105182/lec16.pdf
13
Aim: Identify the requirements from any one problem domain given below in group of two
and develop software requirement specification - SRS document.
1. LIBRARY INFORMATION SYSTEM
2. HOTEL MANAGEMENT SYSTEM
3. FLIGHT PLANNING AND MANAGEMENT SYSTEM
4. AMBULANCE DISPATCHING SYSTEM
5. ONLINE SHOPPING SYSTEM
6. HOSPITAL MANAGEMENT SYSTEM
7. BANKING SYSTEM
8. STUDENT MANAGEMENT SYSTEM
9. ATTENDANCE MANAGEMENT SYSTEM
10. EXAMINATION SYSTEM
11. SOCIAL SECURITY DETAILS MANAGEMENT SYSTEM
12. ONLINE TICKET BOOKING SYSTEM
What is SRS?
Once the concerned system has been developed and deployed, and a proposed feature was not
found to be present in the system, the client can point this out from the SRS. Also, if after
delivery, the client says a new feature is required, which was not mentioned in the SRS, the
service provider can again point to the SRS.
Collect all possible FRs and non-FRs for any one system mentioned above, which are complete,
consistent, and non-ambiguous, the Software Requirements Specification (SRS) is to be prepared
by each student in group of two. IEEE provides a template for SRS and its outline is also
available here, which must be used.
14
Software Requirement Specification
Table of Contents
Table of Contents .................................................................................................................... 15
Revision History ............................................................................ Error! Bookmark not defined.
1. Introduction ............................................................................. Error! Bookmark not defined.
1.1 Purpose.................................................................................... Error! Bookmark not defined.
1.2 Document Conventions ............................................................ Error! Bookmark not defined.
1.3 Intended Audience and Reading Suggestions ........................... Error! Bookmark not defined.
1.4 Product Scope .......................................................................... Error! Bookmark not defined.
1.5 References ............................................................................... Error! Bookmark not defined.
2. Overall Description ................................................................. Error! Bookmark not defined.
2.1 Product Perspective ................................................................. Error! Bookmark not defined.
2.2 Product Functions .................................................................... Error! Bookmark not defined.
2.3 User Classes and Characteristics .............................................. Error! Bookmark not defined.
2.4 Operating Environment ............................................................ Error! Bookmark not defined.
2.5 Design and Implementation Constraints ................................... Error! Bookmark not defined.
2.6 User Documentation ................................................................ Error! Bookmark not defined.
2.7 Assumptions and Dependencies ............................................... Error! Bookmark not defined.
3. External Interface Requirements ........................................... Error! Bookmark not defined.
3.1 User Interfaces ......................................................................... Error! Bookmark not defined.
3.2 Hardware Interfaces ................................................................. Error! Bookmark not defined.
3.3 Software Interfaces .................................................................. Error! Bookmark not defined.
3.4 Communications Interfaces ...................................................... Error! Bookmark not defined.
4. Domain Model ......................................................................... Error! Bookmark not defined.
5. System Features (Use Cases) ................................................... Error! Bookmark not defined.
5.1 Use Case 1 ............................................................................... Error! Bookmark not defined.
5.1.1 Name:.................................................................................. Error! Bookmark not defined.
5.1.2 Goal: ................................................................................... Error! Bookmark not defined.
5.1.3 Input:................................................................................... Error! Bookmark not defined.
5.1.4 Output: ................................................................................ Error! Bookmark not defined.
5.1.5 Main Scenario: .................................................................... Error! Bookmark not defined.
5.1.6 Pre-condition: ...................................................................... Error! Bookmark not defined.
5.1.7 Steps: .................................................................................. Error! Bookmark not defined.
5.1.8 Post-condition ..................................................................... Error! Bookmark not defined.
5.1.9 Exceptional Scenario 1 ........................................................ Error! Bookmark not defined.
5.1.10 Example .............................................................................. Error! Bookmark not defined.
5.2 Use Case 2 (and so on)............................................................. Error! Bookmark not defined.
6. Other Nonfunctional Requirements ....................................... Error! Bookmark not defined.
6.1 Performance Requirements ...................................................... Error! Bookmark not defined.
6.2 Safety Requirements ................................................................ Error! Bookmark not defined.
6.3 Security Requirements ............................................................. Error! Bookmark not defined.
6.4 Software Quality Attributes ..................................................... Error! Bookmark not defined.
7. Other Requirements ................................................................ Error! Bookmark not defined.
Appendix A: Glossary ................................................................... Error! Bookmark not defined.
Appendix B: Analysis Models ....................................................... Error! Bookmark not defined.
Appendix C: To Be Determined List ............................................ Error! Bookmark not defined.
15
Aim : Consider any project to be developed in any technology as a Software Architect or Project
Manager. Construct Software Requirement Specification (SRS) document for the project.
SRS
Prepared by:
Contents
16
1 Introduction
............................................................................................................................................................2 1.1
Purpose
............................................................................................................................................................2 1.2
Scope of the System
c......................................................................................................................................2 1.3 Objectives
and Success Criteria of the Project...............................................................................................2 1.4
Acronyms and
Abbreviations..........................................................................................................................2 1.5
References...................................................................................................................................................
.....2 2 OVERALL DISCRIPTION
........................................................................................................................................3 2.1 ER
diagram........................................................................................................................................................
.....3 2.2 Current
System......................................................................................................................................................3
2.3 Operating
Environment........................................................................................................................................3 2.4
Assumptions and Dependencies
..........................................................................................................................3 3 Feasibility
Analysis...................................................................................................................................................3
3.1 Requirement Analysis and Specification (SRS):
.................................................................................................. 4 4 Requirements:
......................................................................................................................................................... 4 4.1
Functional Requirements
..................................................................................................................................... 4 4.2 Non-
functional
Requirements............................................................................................................................. 4 4.3
Other Requirements:
............................................................................................................................................5 5.1 Intended
Audience:................................................................................................................................................5
5.2 Intended Use:
........................................................................................................................................................5 5.3
Technical
Implementation....................................................................................................................................5 6
Testing.........................................................................................................................................................
............ 6 6.1 Unit testing:-
......................................................................................................................................................... 6 6.2
Integration Testing:-
............................................................................................................................................ 6 6.3 System
Testing:-................................................................................................................................................... 6
7 Acceptance, installation,
deployment:....................................................................................................................7 8
Maintenance................................................................................................................................................
.............7 9 Conclusion
...............................................................................................................................................................7 10
17
Future Scope
...........................................................................................................................................................7
PAGE 1
1 Introduction
The Ambulance Dispatch System (ADS) is a web based tool to allow the administration
of emergency response system. It maintains locations of ambulances that can be
dynamically configured at administration time. The system maintains a history of
response results for analysis.
1.1 PURPOSE
The purpose of the ADS is to enhance the capabilities of 911 ambulance dispatchers in
the timely displacement of ambulance(s) to injury scenes in an efficient manner.
The scope of the ADS starts at the moment the dispatcher gathers information from the
caller and ends at the patient(s) arrival to a hospital.
[1] http://www.utdallas.edu/~chung/CS6354/
PAGE 2
[2] http://wwwbruegge.informatik.tu
muenchen.de/twiki/bin/view/OOSE/RequirementsAnalysisDocumentTemplate
[3] http://en.wikipedia.org/wiki/Dispatcher
2 OVERALL DISCRIPTION
2.1 ER DIAGRAM
Shown in Practical 3
Hardware Platform:
• PROCESSOR: Intel core i3 @ 2.40 GHz
• RAM: 3GB
• HARDDISK: 500GB
• System Type : 32-bit Operating System
• LAN: High Speed up to 10 mbps
Software Components:
• PLATFORM: NetBeans IDE 7.2.1
• THE OPERATING SYSTEM: Windows 7 Ultimate
• FRONT-END : HTML5
• Middle : Java Server Pages
• BACK-END : MySQL
19
2.4 ASSUMPTIONS AND DEPENDENCIES
• This project assumes that the users who like to register must have at least one valid
email account.
• This project assumes that the system is connected to network
3 FEASIBILITY ANALYSIS
PAGE 3
Feasibility Analysis of a project is performed with the aim to determine that whether it would
technically and economically feasible to undertake the project. In other words, is there sufficient
resources, technical and economical, available to develop the product. It involves the analysis
of the problem and collection of all the relevant information relating to the project such as inputs
to the system, processing of the inputs, the output required to be produced by the system and
various constraints on the behaviour of the system.
2) Economic Feasibility:
Whether the project to be undertaken is economically feasible or not is determined by
the Economic Feasibility Analysis. It involves the study that if there is sufficient finance
available to complete the project. It is quite obvious that in order to develop a product, technical
backup alone is not sufficient. Adequate capital is very much necessary for the successful
completion of the project. Moreover, it also has to be determined that whether the capital spent
on developing the project would fetch handsome returns or not; otherwise there is no point in
developing the product, if it does not fetch any profit at all. In this case, the software is
scheduled to develop with optimized cost in order to make the project economically feasible.
21
• Project Manager
• Database Designer
• Sales Team
• Marketing Team
• Stockholders
6 TESTING
• The aim of testing is to identify all defects in a software product.
• However, in practice even after thorough testing one cannot guarantee that the software is
error free.
• Testing does however expose many errors:
✓ Testing provides a practical way of reducing defects in a system
✓ Increases the users' confidence in a developed system.
• Software products are tested at three levels:
✓ Unit testing
✓ Integration testing
✓ System testing
22
6.1 UNIT TESTING:-
• During unit testing, modules are tested in isolation:
• If all modules were to be tested together it may not be easy to determine which module has
the error.
• Unit testing reduces debugging effort several folds.
• Programmers carry out unit testing immediately after they complete the coding of a module.
• Alpha - System testing is carried out by the test team within the developing organization. •
Beta - System testing performed by a select group of friendly customers.
• Acceptance - System testing performed by the customer himself to determine whether the
system should be accepted or rejected.
23
This is the final stage of the development of the software where the developed software is
installed at the client’s place and all the applications are deployed so as to enable the client to
use the software for his intended requirement.
8 MAINTENANCE
• Maintenance refers to any changes made to the product after it has been delivered to the
customer. Maintenance of software products is concerned with correction of errors; enhance
features, part to new platforms etc.
• Software maintenance is an important activity of a large number of organizations. • It is quite
natural that the customers would prefer using the existing software products to run on newer
platforms, in newer environments and with enhanced features.
• Moreover, maintenance of a software product is essential to rectify the bugs observed while
the system is in use.
• Thus, software maintenance is quite an important activity in the development of the
product because it is almost certain that the customer would ask for further rectification of the
product after its delivery and thus one has to be prepared to meet the customers’
requirements.
9 CONCLUSION
• The main objective of this web application was to utilize the benefits of global positioning
system and incorporate it into tracking software for the benefit of common people.
• Though this version does not contain an interface for common users, it can be added later. •
Proper usage of applications like this can bring about a lot of improvement in emergency
health services.
• It helps in saving a lot of time which is of prime importance.
• Also proper management of staff and other resources helps in optimizing funds thereby
maintains smooth functioning of the unit or organization.
10 FUTURE SCOPE
There is scope for a lot of improvements and up-gradations in this application. Some of them
are listed below:
• An alarm can be set for maintenance so that each and every ambulance can be sent for
servicing at regular intervals.
• Report generation once a patient or accident victim is successfully transported to the
hospital. • Alarm in case of diversion from route.
PAGE 7
• Maintaining doctors at standby along with ambulances.
• Keeping a record of aged patients and keeping a tab on their health periodically
24
Post Practical Questions:
1. Select the developer-specific requirement?
a) Portability
b) Maintainability
c) Availability
d) Both Portability and Maintainability
2. Which of the following statements explains portability in non-functional requirements?
a) It is a degree to which software running on one platform can easily be converted
to run on another platform
b) It cannot be enhanced by using languages, OS’ and tools that are universally available
and standardized
c) The ability of the system to behave consistently in a user-acceptable manner when
operating within the environment for which the system was intended
d) None of the mentioned
3. “Consider a system where, a heat sensor detects an intrusion and alerts the security
company.” What kind of a requirement the system is providing?
a) Functional
b) Non-Functional
c) Known Requirement
d) None of the mentioned
4. The SRS document is also known as _____________ specification.
a) black-box
b) white-box
c) grey-box
d) none of the mentioned
5. The goal of reading SRS document by the software developer is to :
a) Ensure requirements are understandable from a functionality point of view
b) Understand the features of the product
c) Ensure that the software is developed as per customer needs
d) None of these
Conclusion:
26
PRACTICAL SET – 3
STUDY OBJECT ORIENTED DESIGN USING UML.
What is UML?
The Unified Modeling Language (UML) is a standard language for specifying, visualizing,
constructing, and documenting the artifacts of software systems, as well as for business modeling
and other non-software systems. The UML represents a collection of best engineering practices
that have proven successful in the modeling of large and complex systems. The UML is a very
important part of developing object-oriented software and the software development process.
The UML uses mostly graphical notations to express the design of software projects. Using the
UML helps project teams communicate, explore potential designs, and validate the architectural
design of the software.
Why UML?
As the strategic value of software increases for many companies, the industry looks for
techniques to automate the production of software and to improve quality and reduce cost and
time-to-market. These techniques include component technology, visual programming, patterns
and frameworks. Businesses also seek techniques to manage the complexity of systems as they
increase in scope and scale. In particular, they recognize the need to solve recurring architectural
problems, such as physical distribution, concurrency, replication, security, load balancing and
fault tolerance. Additionally, the development for the World Wide Web, while making some
things simpler, has exacerbated these architectural problems. The Unified Modeling Language
(UML) was designed to respond to these needs.
Types of UML Diagrams:
There are two broad categories of diagrams and they are again divided into subcategories
Structural Diagrams
Behavioural Diagrams
Structural Diagrams
The structural diagrams represent the static aspect of the system. These static aspects represent
those parts of a diagram, which forms the main structure and are therefore stable.
These static parts are represented by classes, interfaces, objects, components, and nodes. The
four structural diagrams are
Class diagram
Object diagram
Component diagram
Deployment diagram
27
Class Diagram
Class diagrams basically represent the object-oriented view of a system, which is static in nature.
It consists of classes, interfaces, associations, and collaboration. Active class is used in a class
diagram to represent the concurrency of the system.
Class diagram represents the object orientation of a system. Hence, it is generally used for
development purpose. This is the most widely used diagram at the time of system construction.
Elements in class diagram
Class diagram contains the system classes with its data members, operations and relationships
between classes.
Class
A set of objects containing similar data members and member functions is described by a class.
In UML syntax, class is identified by solid outline rectangle with three compartments which
contain
Class name
A class is uniquely identified in a system by its name. A textual string is taken as class
name. It lies in the first compartment in class rectangle.
28
Attributes
Property shared by all instances of a class. It lies in the second compartment in class
rectangle.
Operations
An execution of an action can be performed for any object of a class. It lies in the last
compartment in class rectangle.
Generalization/Specialization
It describes how one class is derived from another class. Derived class inherits the
properties of its parent class.
Relationships
Existing relationships in a system describe legitimate connections between the classes in that
system.
Association
It is an instance level relationship that allows exchanging messages among the objects of
both ends of association. A simple straight line connecting two class boxes represent an
association. We can give a name to association and also at the both end we may indicate
role names and multiplicity of the adjacent classes. Association may be uni-directional.
Aggregation
It is a special form of association which describes a part-whole relationship between a
pair of classes. It means, in a relationship, when a class holds some instances of related
class, then that relationship can be designed as an aggregation.
Multiplicity
It describes how many numbers of instances of one class is related to the number of
instances of another class in an association.
29
Object Diagram
Object diagrams can be described as an instance of class diagram. Thus, these diagrams are more
close to real-life scenarios where we implement a system.
Object diagrams are a set of objects and their relationship is just like class diagrams. They also
represent the static view of the system.
The usage of object diagrams is similar to class diagrams but they are used to build prototype of
a system from a practical perspective.
Component Diagram
Component diagrams represent a set of components and their relationships. These components
consist of classes, interfaces, or collaborations. Component diagrams represent the
implementation view of a system.
During the design phase, software artifacts (classes, interfaces, etc.) of a system are arranged in
different groups depending upon their relationship. Now, these groups are known as components.
Finally, it can be said component diagrams are used to visualize the implementation.
Deployment Diagram
Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities
where the components are deployed.
Deployment diagrams are used for visualizing the deployment view of a system. This is
generally used by the deployment team.
Behavioural Diagrams
Any system can have two aspects, static and dynamic. So, a model is considered as complete
when both the aspects are fully covered.
Behavioural diagrams basically capture the dynamic aspect of a system. Dynamic aspect can be
further described as the changing/moving parts of a system.
UML has the following five types of behavioural diagrams
Use case diagram
Sequence diagram
30
Activity diagram
State chart diagram
Collaboration diagram
Use Case Diagram
Use case diagrams are a set of use cases, actors, and their relationships. They represent the use
case view of a system.
Use case diagrams aim to present a graphical overview of the functionality provided by the
system. Hence, use case diagram is used to describe the relationships among the functionalities
and their internal/external controllers. These controllers are known as actors. It also consists of a
set of actions (referred to as use cases) which can be performed by one or more actors, their
relationships and dependencies.
Actor
An actor can be defined as an object or set of objects, external to the system, which interacts
with the system to get some meaningful work done. Actors could be human, devices, or even
other systems. Actors can be classified as below:
Primary actor: They are principal users of the system, who fulfil their goal by availing
some service from the system.
Supporting actor: They render some kind of service to the system.
In a use case diagram primary actors are usually drawn on the top left side of the diagram.
Use Case
A use case is simply a functionality provided by a system.
Subject
Subject is simply the system under consideration. Use cases apply to a subject.
Symbols and Notations
The notation for a use case diagram is pretty straightforward and doesn't involve as many types
of symbols as other UML diagrams.
31
Use cases: Horizontally shaped ovals that represent the different uses that a user might
have.
Actors: Stick figures that represent the people actually employing the use cases.
Associations: A line between actors and use cases. In complex diagrams, it is important
to know which actors are associated with which use cases.
System boundary boxes: A box that sets a system scope to use cases. All use cases
outside the box would be considered outside the scope of that system. For example,
Psycho Killer is outside the scope of occupations in the chainsaw example found below.
Packages: A UML shape that allows you to put different elements into groups. Just as
with component diagrams, these groupings are represented as file folders.
Sequence Diagram
A sequence diagram is an interaction diagram. From the name, it is clear that the diagram deals
with some sequences, which are the sequence of messages flowing from one object to another.
32
Interaction among the components of a system is very important from implementation and
execution perspective. Sequence diagram is used to visualize the sequence of calls in a system to
perform a specific functionality.
Elements in sequence diagram
Sequence diagram contains the objects of a system and their life-line bar and the messages
passing between them.
Object
Objects appear at the top portion of sequence diagram. Object is shown in a rectangle box.
Name of object precedes a colon ‘:’ and the class name, from which the object is instantiated.
The whole string is underlined and appears in a rectangle box. Also, we may use only class
name or only instance name.
Objects which are created at the time of execution of use case and are involved in message
passing , are appear in diagram, at the point of their creation.
Life-line bar
A down-ward vertical line from object-box is shown as the life-line of the object. A rectangle
bar on life-line indicates that it is active at that point of time.
33
Messages
Messages are shown as an arrow from the life-line of sender object to the life-line of receiver
object and labelled with the message name. Chronological order of the messages passing
throughout the objects’ life-line show the sequence in which they occur. There may exist
some different types of messages:
o Synchronous messages: Receiver start processing the message after receiving it
and sender needs to wait until it is made. A straight arrow with close and fill
arrow-head from sender life-line bar to receiver end, represent a synchronous
message.
o Asynchronous messages: For asynchronous message sender needs not to wait for
the receiver to process the message. A function call that creates thread can be
represented as an asynchronous message in sequence diagram. A straight arrow
with open arrow-head from sender life-line bar to receiver end, represent an
asynchronous message.
o Return message: For a function call when we need to return a value to the object,
from which it was called, then we use return message. But, it is optional, and we
are using it when we are going to model our system in much detail. A dashed
arrow with open arrow-head from sender life-line bar to receiver end, represent
that message.
Response message:
One object can send a message to self. We use this message when we need to show the
interaction between the same object.
Activity Diagram
Activity diagram describes the flow of control in a system. It consists of activities and links. The
flow can be sequential, concurrent, or branched.
34
Activities are nothing but the functions of a system. Numbers of activity diagrams are prepared
to capture the entire flow in a system.
Activity diagrams are used to visualize the flow of controls in a system. This is prepared to have
an idea of how the system will work when executed.
Components of an Activity Diagram
Below we describe the building blocks of an activity diagram.
Activity
An activity denotes a particular action taken in the logical flow of control. This could simply
be invocation of a mathematical function, alter an object's properties and so on. An activity is
represented with a rounded rectangle. A label inside the rectangle identifies the
corresponding activity.
There are two special type of activity nodes: initial and final. They are represented with a
filled circle, and a filled in circle with a border respectively. Initial node represents the
starting point of a flow in an activity diagram. There could be multiple initial nodes, which
mean that invoking that particular activity diagram would initiate multiple flows.
A final node represents the end point of all activities. Like an initial node, there could be
multiple final nodes. Any transition reaching a final node would stop all activities.
Flow
A flow (also termed as edge, or transition) is represented with a directed arrow. This is used
to depict transfer of control from one activity to another, or to other types of components. A
flow is often accompanied with a label, called the guard condition, indicating the necessary
condition for the transition to happen. The syntax to depict it is [guard condition].
Decision
A decision node, represented with a diamond, is a point where a single flow enters and two
or more flows leave. The control flow can follow only one of the outgoing paths. The
35
outgoing edges often have guard conditions indicating true-false or if-then-else conditions.
However, they can be omitted in obvious cases. The input edge could also have guard
conditions. Alternately, a note can be attached to the decision node indicating the condition
to be tested.
Merge
This is represented with a diamond shape, with two or more flows entering, and a single flow
leaving out. A merge node represents the point where at least a single control should reach
before further processing could continue.
Fork
Fork is a point where parallel activities begin. For example, when a student has been
registered with a college, he can in parallel apply for student ID card and library card. A fork
is graphically depicted with a black bar, with a single flow entering and multiple flows
leaving out.
Join
A join is depicted with a black bar, with multiple input flows, but a single output flow.
Physically it represents the synchronization of all concurrent activities. Unlike a merge, in
case of a join all of the incoming controls must be completed before any further progress
could be made. For example, a sales order is closed only when the customer has receive the
product, and the sales company has received it's payment.
Note
UML allows attaching a note to different components of a diagram to present some textual
information. The information could simply be a comment or may be some constraint. A note
can be attached to a decision point, for example, to indicate the branching criteria.
Partition
Different components of an activity diagram can be logically grouped into different areas,
called partitions or swim-lanes. They often correspond to different units of an organization or
different actors. The drawing area can be partitioned into multiple compartments using
vertical (or horizontal) parallel lines. Partitions in an activity diagram are not mandatory.
Activity
36
Component Graphical Notation
Flow
Decision
Merge
Fork
Join
Note
37
Any real-time system is expected to be reacted by some kind of internal/external events. These
events are responsible for state change of the system.
State chart diagram is used to represent the event driven state change of a system. It basically
describes the state change of a class, interface, etc.
State chart diagram is used to visualize the reaction of a system by internal/external factors.
Collaboration Diagram
Collaboration diagram is another form of interaction diagram. It represents the structural
organization of a system and the messages sent/received. Structural organization consists of
objects and links.
The purpose of collaboration diagram is similar to sequence diagram. However, the specific
purpose of collaboration diagram is to visualize the organization of objects and their interaction.
References:
[1] https://nptel.ac.in/courses/pdf_link/106105182/lec30.pdf
[2] https://www.uml-diagrams.org/
38
Aim: Prepare following UML Diagrams for system selected in practical 2.
1. Use-Case Diagram
2. Entity Relationship Diagram
3. Sequence Diagram
4. Activity Diagram
5. Class Diagram
39
Fig: Sequence Diagram for User Login
40
Fig: Sequence Diagram for Book Details
41
Fig: Sequence Diagram for Managing Member Details
42
Fig: Activity Diagram for Book Search
43
Post Practical Questions:
1. Which model in system modeling depicts the static nature of the system?
a) Behavioral Model
b) Context Model
c) Data Model
d) Structural Model
2. Which model in system modeling depicts the dynamic behavior of the system?
a) Context Model
b) Behavioral Model
c) Data Model
d) Object Model
3. Which perspective in system modeling shows the system or data architecture?
a) Structural perspective
b) Behavioral perspective
c) External perspective
d) All of the mentioned
4. The UML supports event-based modeling using ____________ diagrams.
a) Deployment
b) Collaboration
c) State chart
d) All of the mentioned
5. _________________ allows us to infer that different members of classes have some
common characteristics.
a) Realization
b) Aggregation
c) Generalization
d) dependency
6. ___________ Classes are used to create the interface that the user sees and interacts with
as the software is used.
a) Controller
b) Entity
c) Boundary
d) Business
44
7. ______________ & ______________ diagrams of UML represent Interaction modeling.
a) Use Case, Sequence
b) Class, Object
c) Activity, State Chart
d) All of the mentioned
8. The Unified Modeling Language (UML) has become an effective standard for software
modeling. How many different notations does it have?
a) Three
b) Four
c) Six
d) Nine
9. Model-driven engineering is just a theoretical concept. It cannot be converted into a
working/executable code.
a) True
b) False
10. Which of the following statement is incorrect regarding the Class-responsibility-
collaborator (CRC) modeling?
a) All use-case scenarios (and corresponding use-case diagrams) are organized into
categories in CRC modeling
b) The review leader reads the use-case deliberately
c) Only developers in the review (of the CRC model) are given a subset of the CRC
model index cards
d) All of the mentioned
Conclusion:
45
PRACTICAL SET – 4
STUDY SYSTEM MODELING USING DATA FLOW DIAGRAMS.
Why DFD?
The main reason why the DFD technique is so popular is probably because of the fact that DFD
is a very simple formalism – it is simple to understand and use. Starting with a set of high-level
functions that a system performs, a DFD model hierarchically represents various sub-functions.
In fact, any hierarchical model is simple to understand. Human mind is such that it can easily
understand any hierarchical model of a system – because in a hierarchical model, starting with a
very simple and abstract model of a system, different details of the system are slowly introduced
through different hierarchies. The data flow diagramming technique also follows a very simple
set of intuitive concepts and rules. DFD is an elegant modeling technique that turns out to be
useful not only to represent the results of structured analysis of a software problem, but also for
several other applications such as showing the flow of documents or items in an organization.
External entity: External entities are only appearing in context diagram. External entities are
represented by a rectangle and the name of the external entity is written into the shape. These
send data to be processed and again receive the processed data.
46
Data store: Data stares are represented by a left-right open rectangle. Name of the data store
is written in between two horizontal lines of the open rectangle. Data stores are used as
repositories from which data can be flown in or flown out to or from a process.
Data flow: Data flows are shown as a directed edge between two components of a Data Flow
Diagram. Data can flow from external entity to process, data store to process, in between two
processes and vice-versa.
Numbering of processes:
If process ‘p’ in context diagram is split into 3 processes ‘p1’, ‘p2’and ‘p3’ in next level then
these are labelled as 0.1, 0.2 and 0.3 in level 1 respectively. Let the process ‘p3’ is again split
into three processes ‘p31’, ‘p32’ and ‘p33’ in level 2, so, these are labelled as 0.3.1, 0.3.2 and
0.3.3 respectively and so on.
Balancing DFD:
The data that flow into the process and the data that flow out to the process need to be match
when the process is split into in the next level. This is known as balancing a DFD.
47
Aim: Prepare Data Flow Diagrams –DFD for system selected in practical 2.
48
Fig: DFD (Level 1) for Member
49
Fig: DFD (Level 1) for Staff
50
Post Practical Questions:
1. Which of the following is a complementary approach to function-oriented approach?
a) Object oriented analysis
b) Object oriented design
c) Structured approach
d) Both Object oriented analysis and design
2. Structured Analysis is based on the principles of
a) Top-down decomposition approach
b) Divide and conquer principle
c) Graphical representation of results using DFDs
d) All of the mentioned
3. The __________ enables the software engineer to develop models of the information
domain and functional domain at the same time
a) Data flow diagram
b) State transition diagram
c)Control specification
d) Activity Diagram
4. In DFDs, user interactions with the system is denoted by
a) Circle
b) Arrow
c) Rectangle
d) Triangle
5. A DFD is always accompanied by a data dictionary.
a) True
b) False
6. The context diagram is also known as
a) Level-0 DFD
b) Level-1 DFD
c) Level-2 DFD
d) All of the mentioned
7. What DFD notation is represented by the Rectangle?
a) Transform
b) Data Store
c) Function
d) None of the mentioned
51
8. Data Store Symbol in DFD represents a
a) Physical file
b) Data Structure
c) Logical file
d) All of the mentioned
9. State whether the following statements about the advantages of using the data dictionary
are True or False.
i) The data dictionary software can check for name uniqueness and tell requirements
analysis of name duplication.
ii) Data dictionary servers as store of organization information which can link analysis,
design, implementation and evaluation.
a) True, False
b) False, True
c) False, False
d) True, True
10. A data model contains
a) Data object
b) Attributes
c) Relationships
d) All of the mentioned
Conclusion:
52
PRACTICAL SET – 5
STUDY SOFTWARE PROJECT ESTIMATION TECHNIQUES, FUNCTION POINT
ANALYSIS AND COCOMO MODEL.
Estimation is based on
Past Data/Past Experience
Available Documents/Knowledge
Assumptions
Identified Risks
53
AIM: ESTIMATE EFFORTS AND COST USING FUNCTION POINT AND COCOMO
MODEL.
5.1 FUNCTION POINT
The purpose of FP procedure is to produce an estimate of software size from software
requirements. Function Points are an indirect measure of software size based on external and
internal application characteristics, as well as application performance. Function Points have a
significant cost estimating relationship (CER) to software costs. Once determined, Function
Points can be input into empirical statistical parametric software cost estimation equations and
models in order to estimate software costs. Function Points are widely reported to be well suited
for measuring the size of management information system (MIS), database intensive, and 4GL
based application (e.g., software) system development.
SCOPE
Function Points are indirect quantitative measures of application software functionality and size
that are based on objective counts of external application interfaces factored together with
subjective counts of internal application complexity and overall performance characteristics.
This procedure is composed of three logical divisions, determining the unadjusted function
point count, value adjustment factor, and Function Points.
Determining the unadjusted function point count consists of counting the number of external
inputs, external outputs, external inquiries, internal logical files, and external interface
files. Determining the value adjustment factor consists of rating system, input and output, and
application complexity.
Determining Function Points consists of factoring unadjusted function points and value
adjustment factor together. Function Points have two distinct purposes.
The first purpose is to act as a basis for software measurement, comparison, and analysis (e.g., a
software metrics approach).
The second, and more important purpose, is to determine software size for input into software
cost estimation models (e.g., equations) and tools that output effort (e.g., staff hours), which are
based on empirical cost estimating relationships (CERs) between Function Points and effort.
Methodology of calculating the function points
We need to under stand a system first with respect to the function points for that consider an
application model as below for measuring the function points.
The Five Major Components
Since it is common for computer systems to interact with other computer systems, a boundary
must be drawn around each system to be measured prior to classifying components. This
boundary must be drawn according to the user’s point of view. In short, the boundary indicates
the border between the project or application being measured and the external applications or
54
user domain. Once the border has been established, components can be classified, ranked and
tallied.
External Inputs (EI) - is an elementary process in which data crosses the boundary from outside
to inside. This data may come from a data input screen or another application. The data may be
used to maintain one or more internal logical files. The data can be either control information or
business information. If the data is control information it does not have to update an internal
logical file. The graphic represents a simple EI that updates 2 ILF's (FTR's).
External Outputs (EO) - An elementary process in which derived data passes across the
boundary from inside to outside. Additionally, an EO may update an ILF. The data creates
reports or output files sent to other applications. These reports and files are created from one or
more internal logical files and external interface file. The following graphic represents on EO
with 2 FTR's there is derived information (green) that has been derived from the ILF's
55
External Inquiry (EQ) - An elementary process with both input and output components will
result in data retrieval from one or more internal logical files and external interface files. The
input process does not update any Internal Logical Files, and the output side does not contain
derived data. The graphic below represents an EQ with two ILF's and no derived data.
Internal Logical Files (ILF’s) - The user identifiable group of logically related data that
resides entirely within the applications boundary and is maintained through external inputs.
External Interface Files (EIF’s) - The user identifiable group of logically related data that is
used for reference purposes only. The data resides entirely outside the application and is
maintained by another application. The external interface file is an internal logical file for
another application.
The counts for each level of complexity for each type of component can be entered into a table
such as the following one. Each count is multiplied by the numerical rating shown to determine
the rated value. The rated values on each row are summed across the table, giving a total value
for each type of component. These totals are then summed across the table, giving a total value
for each type of component. These totals are then summoned down to arrive at the Total Number
of Unadjusted Function Points.
56
The value adjustment factor (VAF) is based on 14 general system characteristics (GSC's) that
rate the general functionality of the application being counted. Each characteristic has associated
descriptions that help determine the degrees of influence of the characteristics. The degrees of
influence range on a scale of zero to five, from no influence to strong influence. The IFPUG
Counting Practices Manual provides detailed evaluation criteria for each of the GSC'S, the table
below is intended to provide an overview of each GSC.
Further the calculation of VAF (Value added Factor) which is based on the TDI (Total Degree of
Influence of the 14 General system characteristics)
a) TDI = Sum of (DI of 14 General System Characteristics) where DI stands for Degree
of Influence.
b) These 14 GSC are
1. Data Communication _________
2. Distributed Data Processing _________
3. Performance _________
4. Heavily Used Configuration _________
5. Transaction Role _________
6. Online Data Entry _________
7. End-User Efficiency _________
8. Online Update _________
9. Complex Processing _________
10. Reusability _________
11. Installation Ease _________
57
12. Operational Ease _________
13. Multiple Sites _________
14. Facilitate Change _________
TDI = _________
c) The degree of influence range is on a scale of zero to five, from no influence to
strong influence.
1 Incidental influence
2 Moderate influence
3 Average influence
4 Significant influence
58
Calculate Adjusted Function Point Count
As per the FPA approach that uses the VAF (CPM versions before V4.3.1), this is determined
by,
Adjusted FP Count = Unadjusted FP Count × VAF
Cost estimation can be defined as the approximate judgment of the costs for a project. Cost
estimation will never be an exact science because there are too many variables involved in the
calculation for a cost estimate, such as human, technical, environmental, and political.
COCOMO MODEL:
COCOMO (Constructive Cost Model) is a model that allows one to estimate the cost,
effort, and schedule when planning a new software development activity.
COCOMO is useful for a much wider collection of techniques and technologies.
COCOMO provides up-to-date support for business software, object – oriented software,
software created via evolutionary development models and software developed using
commercial- off-the-shelf application composition utilities.
59
FORMULA FOR CALCULATING EFFORT:
EFFORT = a * SIZE + b
Here, the magnitude of the effort is a linear function of the size of the project (Number of Lines
of Code, usually). This model holds up until a certain point, usually for projects that can be
reasonably accomplished by small teams of two or three people. By increasing the size of the
project, the above model becomes less and less accurate and the need for a new model increases.
EFFORT = a * SIZE b
Here, the size of the project is scaled exponentially, therefore as a product increases in size, the
effort to produce the product grows more than linearly (for b >= 1). It means that if we try to
develop a larger product, our productivity (SIZE / EFFORT) Decreases.
The main reasons why larger software products incur diseconomies of scale are the following:
1. Relatively more product design is required to develop the thorough unit-level
specifications required to support the parallel activity of a larger number of programmers.
2. Relatively more effort is required to verify and validate the larger requirements and
design specifications.
3. Even with a thoroughly defined specification, programmers on a large project will spend
relatively more time communicating and resolving interface issues.
4. Relatively more integration activity is required to put the units together.
Effort Equation:
Where,
Effort = 2.94 * EAF * (KSLOC) E
EAF: Is the Effort Adjustment Factor derived from the Cost Drivers.
E: Is an exponent derived from the five Scale Drivers.
60
Effort Adjustment Factor:
The Effort Adjustment Factor in the effort equation is simply the product of the effort multipliers
corresponding to each of the cost drivers for your project.
For example, if your project is rated Very High for Complexity (effort multiplier of 1.34), and
Low for Language & Tools Experience (effort multiplier of 1.09), and all of the other cost
drivers are rated to be Nominal (effort multiplier of 1.00), the EAF is the product of 1.34 and
1.09.
Effort Adjustment Factor = EAF=1.34*1.09 = 1.46
Effort = 2.94 * (1.46) * (8)1.0997= 42.3 Person-Months
Schedule Equation: Duration = 3.67 * (Effort) SE
Where,
Effort: Is the effort from the COCOMO effort equation.
SE: Is the schedule equation exponent derived from the five Scale Drivers.
Average Staffing: Average staffing=Effort/Duration
System Implementation:
Step 1: Input develops software.
Step 2: Compute the value of EAF.
Step 3: Find the value of E and SE.
Step 4: Find the size of Software (KSLOC).
Step 5: Calculate the Effort Equation by: Effort = 2.94 * EAF * (KSLOC) E
Step 6: Calculate the Duration Equation by: Duration = 3.67 * (Effort) SE
Step 7: Calculate the Average staffing by: Average staffing=Effort/Duration
Step 8: Analysis the result and draw the output is represented the volume of effort to complete
the software.
Step 9: End.
61
Analysis Result:
Eg. The Electricity Measurement project build by JAVA– Language with all normal cost drivers
and scale drivers would have an EAF of 1.00 and exponent , E of 1.0997 and consist of 10,000
source lines of code , COCOMO II estimates that 90.543 person – months of effort is required to
complete it :-
Effort=2.94*(1.0)*(10)1.0997 =36.9868 Person/ Months
Duration=3.67*(36.9868)0.3179 =11.5650 months
Average Staffing =Effort/Duration = (36.9868)/ (11.5650) =3.19816 Person.
Calculate for your system selected for the Practical 2.
Effort=
Duration=
Average Staffing =Effort/Duration =
References:
1. https://nptel.ac.in/courses/106105087/28
2. http://www.softwaremetrics.com/fpafund.htm
3. http://vlabs.iitkgp.ernet.in/se/2/
62
63
Post Practical Questions:
1. Which of the following is an important factor that can affect the accuracy and efficacy of
estimates?
a) Project size
b) Planning process
c) Project complexity
d) Degree of structural uncertainty
2. The project planner examines the statement of scope and extracts all important software
functions which is known as
a) Association
b) Decomposition
c) Planning process
d) All of the mentioned
3. Which of the following is not an option to achieve reliable cost and effort estimate?
a) Base estimates on similar projects that have already been completed
b) Use one or more empirical models for software cost and effort estimation
c) Use relatively simple decomposition techniques to generate project cost and effort
estimates
d) The ability to translate the size estimate into human effort, calendar time, and
dollars
4. What can be used to complement decomposition techniques and offer a potentially
valuable estimation approach in their own right?
a) Automated estimation tools
b) Empirical estimation models
c) Decomposition techniques
d) Both Automated estimation tools and Empirical estimation models
5. Which of the following are parameters involved in computing the total cost of a software
development project?
a) Hardware and software costs
b) Effort costs
c) Travel and training costs
d) All of the mentioned
6. Which of the following costs is not part of the total effort cost?
a) Costs of networking and communications
b) Costs of providing heating and lighting office space
c) Costs of lunch time food
d) Costs of support staff
64
7. What is related to the overall functionality of the delivered software?
a) Function-related metrics
b) Product-related metrics
c) Size-related metrics
d) None of the mentioned
8. Which version of COCOMO states that once requirements have been stabilized, the basic
software architecture has been established?
a) Early design stage model
b) Post-architecture-stage model
c) Application composition model
d) All of the mentioned
9. Which model was used during the early stages of software engineering, when prototyping
of user interfaces, consideration of software and system interaction, assessment of
performance, and evaluation of technology maturity were paramount.
a) Early design stage model
b) Post-architecture-stage model
c) Application composition model
d) All of the mentioned
10. Which one is not a stage of COCOMO-II?
a) Early design estimation model
b) Application Composition estimation model
c) Comprehensive cost estimation model
d) Post architecture estimation model
Conclusion:
65
PRACTICAL SET – 6
STUDY PROJECT SCHEDULING TECHNIQUES/TOOLS. CRITICAL PATH
METHOD (CPM), PROJECT EVALUATION AND REVIEW TECHNIQUE (PERT),
GANTT CHART AND WORK-BREAKDOWN STRUCTURE.
66
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
67
Define a Task Set Network:
Individual tasks and subtasks have interdependencies based on their sequence
Also called an activity network
It is a graphic representation of the task flow for a project
It represent task length, sequence, concurrency, and dependency
Points out inter-task dependencies to help the manager ensure continuous progress
toward project completion
PERT planning involves the following steps that are described below.
1. Identify the specific activities and milestones. The activities are the tasks required to
complete a project. The milestones are the events marking the beginning and the end of
one or more activities. It is helpful to list the tasks in a table that in later steps can be
expanded to include information on sequence and duration.
68
2. Determine the proper sequence of the activities. This step may be combined with the
activity identification step since the activity sequence is evident for some tasks. Other
tasks may require more analysis to determine the exact order in which they must be
performed.
3. Construct a network diagram. Using the activity sequence information, a network
diagram can be drawn showing the sequence of the serial and parallel activities. Each
activity represents a node in the network, and the arrows represent the relation between
activities. Software packages simplify this step by automatically converting tabular
activity information into a network diagram.
4. Estimate the time required for each activity. Weeks are a commonly used unit of time
for activity completion, but any consistent unit of time can be used. A distinguishing
feature of PERT is its ability to deal with uncertainty in activity completion time. For
each activity, the model usually includes three time estimates:
69
Optimistic time – generally the shortest time in which the activity can be completed.
It is common practice to specify optimistic time to be three standards deviations from
the mean so that there is a approximately a 1% chance that the activity will be
completed within the optimistic time.
Most likely time – the completion time having the highest probability. Note that this
time is different from the expected time.
Pessimistic time – the longest time that an activity might require. Three standard
deviations from the mean is commonly used for the pessimistic time.
The critical path is determined by adding the times for the activities in each sequence and
determining the longest path in the project. The critical path determines the total calendar time
required for the project. If activities outside the critical path speed up or slow down (within
limits), the total project time does not change. The amount of time that a non – critical path
activity can be delayed without the project is referred to as a slack time.
If the critical path is not immediately obvious, it may be helpful to determine the following four
quantities for each activity:
These times are calculated using the expected time for the relevant activities. The earliest start
and finish times of each activity are determined by working forward through the network and
determining the earliest time at which an activity can start and finish considering its predecessors
activities. The latest start and finish times are the latest times that an activity can start and finish
without delaying the project. LS and LF are found by working backward through the network.
The difference in the latest and earliest finish of each activity is that activity’s slack. The critical
path then is the path through the network in which none of the activities have slack.
The variance in the project completion time can be calculated by summing the variances in the
completion times of the activities in the critical path. Given this variance, one can calculate the
probability that the project will be completed by the certain date assuming a normal probability
distribution for the critical path. The normal distribution assumption holds if the number of
activities in the path is large enough for the central limit theorem to be applied.
Since the critical path determines the completion date of the project, the project can be
accelerated by adding the resources required to decrease the time for the activities in the critical
path. Such a shortening of the project sometimes is referred to as project crashing.
70
Work Breakdown Structure:
A WBS is the cornerstone of effective project planning, execution, controlling, statusing, and
reporting. All the work contained within the WBS is to be identified, estimated, scheduled, and
budgeted. The WBS is the structure and code that integrates and relates all project work (scope,
schedule, and cost). When initial project funding is received, the Project Director (PD) develops
a WBS that identifies necessary funds according to the schedule and needs of the tasks in the
WBS elements. The WBS is generally a multi-level framework that organizes and graphically
displays elements representing work to be accomplished in logical relationships. The PD is to
structure the project work into WBS elements (work packages) that are:
Gantt chart
A Gantt chart is a horizontal bar chart developed as a production control tool in 1917 by Henry
L. Gantt, an American engineer and social scientist. Frequently used in project management, a
Gantt chart provides a graphical illustration of a schedule that helps to plan, coordinate, and track
specific tasks in a project.
71
A Gantt chart is constructed with a horizontal axis representing the total time span of the project,
broken down into increments (for example, days, weeks, or months) and a vertical axis
representing the tasks that make up the project (for example, if the project is outfitting your
computer with new software, the major tasks. Horizontal bars of varying lengths represent the
sequences, timing, and time span for each task.
As the project progresses, secondary bars, arrowheads, or darkened bars may be added to
indicate completed tasks, or the portions of tasks that have been completed. A vertical line is
used to represent the report date. Gantt charts give a clear illustration of project status, but one
problem with them is that they don't indicate task dependencies - you cannot tell how one task
falling behind schedule affects other tasks.
References:
72
Aim: Prepare Gantt Chart and Work-Breakdown Structure for the system selected in practical 2.
73
Post Practical Questions:
1. Which of the following is the reason that software is delivered late?
a) Changing customer requirements that are not reflected in schedule changes
b) Technical difficulties that could not have been foreseen in advance
c) Human difficulties that could not have been foreseen in advance
d) All of the mentioned
2. Which of the following is an activity that distributes estimated effort across the planned
project duration by allocating the effort to specific software engineering tasks?
a) Software Macroscopic schedule
b) Software Project scheduling
c) Software Detailed schedule
d) None of the mentioned
3. Every task that is scheduled should be assigned to a specific team member is termed as
a) Compartmentalization
b) Defined milestones
c) Defined responsibilities
d) Defined outcomes
4. What is a collection of software engineering work tasks, milestones, and deliverables that
must be accomplished to complete a particular project?
a) Task set
b) Degree of milestone
c) Adaptation criteria
d) All of the mentioned
5. Ensuring that no more than the allocated number of people are allocated at any given
time in Software Scheduling is known as
a) Time Allocation
b) Effort Validation
c) Defined Milestone
d) Effort Distribution
6. What is used to determine the recommended degree of rigor with which the software
process should be applied on a project?
a) Degree of Rigor
b) Adaptation criteria
c) Task Set
d) Both degree of Rigor and adaptation criteria
74
7. What evaluates the risk associated with the technology to be implemented as part of
project scope?
a) Concept scoping
b) Preliminary concept planning
c) Technology risk assessment
d) Customer reaction to the concept
8. Which of the following is not an adaptation criteria for software projects?
a) Size of the project
b) Customers Complaints
c) Project staff
d) Mission criticality
9. Which of the following is a project scheduling method that can be applied to software
development?
a) PERT
b) CPM
c) CMM
d) Both PERT and CPM
10. A technique for performing quantitative analysis of progress is known as
a) BCWS
b) EVA
c) BAC
d) CBSE
Conclusion:
Chart.
75
PRACTICAL SET – 7
STUDY SOFTWARE RISK ANALYSIS AND MANAGEMENT.
Business risk:
If the business risk is real then it harms the project or product.
There are five sub-categories of the business risk:
1. Market risk - Creating an excellent system that no one really wants.
2. Strategic risk - Creating a product which no longer fit into the overall business
strategy for companies.
3. Sales risk - The sales force does not understand how to sell a creating product.
76
4. Management risk - Loose a support of senior management because of a change in
focus.
5. Budget risk - losing a personal commitment.
Technical risk:
o If the technical risk is real then the implementation becomes impossible.
o It identifies potential design, interface, verification and maintenance of the problem.
77
Step 1. Risk Identification
Risk identification is the critical first step of the risk management process. Its objective is the
early and continuous identification of risks, including those within and external to the
engineering system project.
References:
[1] Roger S.Pressman, Software engineering- A practitioner’s Approach,
McGraw-Hill International Editions
[2] https://nptel.ac.in/courses/106105087/31
78
Aim: Prepare RMMM Plan for system selected in practical 2.
79
Post Practical Questions:
1. What is the product of the probability of incurring a loss due to the risk and the potential
magnitude of that loss?
a) Risk exposure
b) Risk prioritization
c) Risk analysis
d) All of the mentioned
2. What threatens the quality and timeliness of the software to be produced?
a) Known risks
b) Business risks
c) Project risks
d) Technical risks
3. Which of the following is not a business risk?
a) building an excellent product or system that no one really wants
b) losing the support of senior management due to a change in focus or change in people
c) lack of documented requirements or software scope
d) losing budgetary or personnel commitment
4. Which of the following is a systematic attempt to specify threats to the project plan?
a) Risk identification
b) Performance risk
c) Support risk
d) Risk projection
5. Which of the following term is best defined by the statement:”the degree of uncertainty
that the product will meet its requirements and be fit for its intended use.”?
a) Performance risk
b) Cost risk
c) Support risk
d) Schedule risk
6. Which risks are associated with constraints imposed by management or the marketplace?
a) Business impact risks
b) Process definition risks
c) Product size risks
d) Development environment risks
80
7. Which risks are associated with the overall size of the software to be built or modified?
a) Business impact risks
b) Process definition risks
c) Product size risks
d) Development environment risks
8. Which of the following is not a business risk?
a) building an excellent product or system that no one really wants
b) losing the support of senior management due to a change in focus or change in people
c) lack of documented requirements or software scope
d) losing budgetary or personnel commitment
9. Which of the following term is best defined by the statement: “Derive traceability
information to maximize information hiding in the design.”?
a) Underestimated development time
b) Organizational restructuring
c) Requirements changes
d) None of the mentioned
10. What assess the risk and your plans for risk mitigation and revise these when you learn
more about the risk?
a) Risk monitoring
b) Risk planning
c) Risk analysis
d) Risk identification
Conclusion:
In this practical,we learnt about risk information sheet which described about
risk developed after development.
81
PRACTICAL SET – 8
STUDY SOFTWARE TESTING AND DESIGN TEST SUITES / CASES.
Software Validation
Validation is process of examining whether or not the software satisfies the user requirements. It
is carried out at the end of the SDLC. If the software matches requirements for which it was
made, it is validated.
Validation ensures the product under development is as per the user requirements.
Validation answers the question – "Are we developing the product which attempts all that
user needs from this software?"
Validation emphasizes on user requirements.
Software Verification
Verification is the process of confirming if the software is meeting the business requirements,
and is developed adhering to the proper specifications and methodologies.
Verification ensures the product being developed is according to design specifications.
Verification answers the question– "Are we developing this product by firmly following
all design specifications?"
Verifications concentrate on the design and system specifications.
82
Failure - Failure is said to be the inability of the system to perform the desired task.
Failure occurs when fault exists in the system.
Testing Approaches:
Tests can be conducted based on two approaches –
Functionality testing
Implementation testing
When functionality is being tested without taking the actual implementation in concern it is
known as black-box testing. The other side is known as white-box testing where not only
functionality is tested but the way it is implemented is also analysed.
Exhaustive tests are the best-desired method for a perfect testing. Every single possible value in
the range of the input and output values is tested. It is not possible to test each and every value
in real world scenario if the range of values is large.
Black-box Testing:
It is carried out to test functionality of the program. It is also called ‘Behavioural’ testing. The
tester in this case, has a set of input values and respective desired results. On providing input, if
the output matches with the desired results, the program is tested ‘ok’, and problematic
otherwise.
In this testing method, the design and structure of the code are not known to the tester, and
testing engineers and end users conduct this test on the software.
Black-box testing techniques:
Equivalence class - The input is divided into similar classes. If one element of a class
passes the test, it is assumed that all the class is passed.
Boundary values - The input is divided into higher and lower end values. If these values
pass the test, it is assumed that all values in between may pass too.
Cause-effect graphing - In both previous methods, only one input value at a time is
tested. Cause (input) – Effect (output) is a testing technique where combinations of input
values are tested in a systematic way.
Pair-wise Testing - The behavior of software depends on multiple parameters. In
pairwise testing, the multiple parameters are tested pair-wise for their different values.
State-based testing - The system changes state on provision of input. These systems are
tested based on their states and input.
83
White-box Testing
It is conducted to test program and its implementation, in order to improve code efficiency or
structure. It is also known as ‘Structural’ testing.
In this testing method, the design and structure of the code are known to the tester.
Programmers of the code conduct this test on the code.
The below are some White-box testing techniques:
Control-flow testing - The purpose of the control-flow testing to set up test cases which
covers all statements and branch conditions. The branch conditions are tested for both
being true and false, so that all statements can be covered.
Data-flow testing - This testing technique emphasis to cover all the data variables
included in the program. It tests where the variables were declared and defined and
where they were used or changed.
Testing Levels
Testing itself may be defined at various levels of SDLC. The testing process runs parallel to
software development. Before jumping on the next stage, a stage is tested, validated and
verified.
Testing separately is done just to make sure that there are no hidden bugs or issues left in the
software. Software is tested on various levels -
Unit Testing
While coding, the programmer performs some tests on that unit of program to know if it is error
free. Testing is performed under white-box testing approach. Unit testing helps developers
decide that individual units of the program are working as per requirement and are error free.
Integration Testing
Even if the units of software are working fine individually, there is a need to find out if the units
if integrated together would also work without errors. For example, argument passing and data
updation etc.
84
System Testing
The software is compiled as product and then it is tested as a whole. This can be accomplished
using one or more of the following tests:
Functionality testing - Tests all functionalities of the software against the requirement.
Performance testing - This test proves how efficient the software is. It tests the
effectiveness and average time taken by the software to do desired task. Performance
testing is done by means of load testing and stress testing where the software is put
under high user and data load under various environment conditions.
Security & Portability - These tests are done when the software is meant to work on
various platforms and accessed by number of persons.
Acceptance Testing
When the software is ready to hand over to the customer it has to go through last phase of
testing where it is tested for user-interaction and response. This is important because even if the
software matches all user requirements and if user does not like the way it appears or works, it
may be rejected.
Alpha testing - The team of developer themselves perform alpha testing by using the
system as if it is being used in work environment. They try to find out how user would
react to some action in software and how the system should respond to inputs.
Beta testing - After the software is tested internally, it is handed over to the users to use
it under their production environment only for testing purpose. This is not as yet the
delivered product. Developers expect that users at this stage will bring minute problems,
which were skipped to attend.
Regression Testing
Whenever a software product is updated with new code, feature or functionality, it is tested
thoroughly to detect if there is any negative impact of the added code. This is known as
regression testing.
Testing Documentation
Testing documents are prepared at different stages -
Before Testing
Testing starts with test cases generation. Following documents are needed for reference –
SRS document - Functional Requirements document
Test Policy document - This describes how far testing should take place before
releasing the product.
Test Strategy document - This mentions detail aspects of test team, responsibility
matrix and rights/responsibility of test manager and test engineer.
85
Traceability Matrix document - This is SDLC document, which is related to
requirement gathering process. As new requirements come, they are added to this
matrix. These matrices help testers know the source of requirement. They can be traced
forward and backward.
After Testing
The following documents may be generated after testing:
Test summary - This test summary is collective analysis of all test reports and logs. It
summarizes and concludes if the software is ready to be launched. The software is
released under version control system if it is ready to launch.
References:
86
Standard Fields of Test Case
Several standard fields of a sample Test Case template are listed below.
Test case ID: Unique ID is required for each test case. Follow some convention to
indicate the types of the test. E.g. ‘TC_UI_1’ indicating ‘user interface test case #1’.
Test priority (Low/Medium/High): This is very useful while test execution. Test
priority for business rules and functional test cases can be medium or higher whereas
minor user interface cases can be of a low priority. Test priority should always be set by
the reviewer.
Module Name: Mention the name of the main module or the sub-module.
Test Designed By: Name of the Tester.
Test Designed Date: Date when it was written.
Test Executed By: Name of the Tester who executed this test. To be filled only after test
execution.
Test Execution Date: Date when the test was executed.
Test Title/Name: Test case title. E.g. verify login page with a valid username and
password.
Test Summary/Description: Describe the test objective in brief.
Pre-conditions: Any prerequisite that must be fulfilled before the execution of this test
case. List all the pre-conditions in order to execute this test case successfully.
Dependencies: Mention any dependencies on the other test cases or test requirement.
Test Steps: List all the test execution steps in detail. Write test steps in the order in which
they should be executed. Make sure to provide as many details as you can. Tip – In order
to manage a test case efficiently with a lesser number of fields use this field to describe
the test conditions, test data and user roles for running the test.
Test Data: Use of test data as an input for this test case. You can provide different data
sets with exact values to be used as an input.
Expected Result: What should be the system output after test execution? Describe the
expected result in detail including message/error that should be displayed on the screen.
Post-condition: What should be the state of the system after executing this test case?
Actual result: Actual test result should be filled after test execution. Describe the system
behaviour after test execution.
Status (Pass/Fail): If actual result is not as per the expected result, then mark this test
as failed. Otherwise, update it as passed.
Notes/Comments/Questions: If there are some special conditions to support the above
fields, which can’t be described above or if there are any questions related to expected or
actual results then mention them here.
87
Aim: Prepare any 3 Test Cases for the system selected in practical 2.
Project Name: Ambulance Dispatch System
Test case ID: 01 Test Designed By: Priyal
ANNAN Dalal
.F
Jay Darji
Test priority (Low/Medium/High): Medium Test Designed Date: 1./10./2020
21
Module Name: ADS Test Executed By: ANNAN
Priyal Dalal
Test Name: Login Validation Test Execution Date: 2-10-202021
Test Description: Login to the System and check the
validation.
Post-condition:
None
88
Project Name: Ambulance Dispatch System
Test case ID:02 Test Designed By: Priyal
ANNAN
Test priority (Low/Medium/High): Medium 21
Test Designed Date: 1/10/2020
Module Name: ADS Test Executed By: ANNAN
Priyal
Test Name: Check Ambulance Location Test Execution Date: 2/10/20 21
Test Description: User can see nearby ambulance
Dependencies: None
Post-condition:
None
89
Project Name: Ambulance Dispatch System
Test case ID:03 ANNAN
Test Designed By: Priyal
Test priority (Low/Medium/High): High Test Designed Date: 3/10/2021
3/10/2020
Module Name: ADS Test Executed By: ANNAN
Priyal
Test Name: Enter Incident Info Test Execution 21
Test Execution Date: 4/10/2020
Test Description: Functionality of the
Dispatcher screen.
Dependencies: None
Post-condition: None
90
3. The testing in which code is checked
a) Black box testing
b) White box testing
c) Red box testing
d) Green box testing
4. Testing done without planning and Documentation is called
a) Unit testing
b) Regression testing
c) Adhoc testing
d) None of the mentioned
5. Acceptance testing is also known as
a) Grey box testing
b) White box testing
c) Alpha Testing
d) Beta testing
6. Which of the following is non-functional testing?
a) Black box testing
b) Performance testing
c) Unit testing
d) None of the mentioned
7. Unit testing is done by
a) Users
b) Developers
c) Customers
d) None of the mentioned
8. Behavioral testing is
a) White box testing
b) Black box testing
c) Grey box testing
d) None of the mentioned
9. Which of the following is black box testing
a) Basic path testing
b) Boundary value analysis
c) Code path analysis
d) None of the mentioned
91
10. Which of the following is not regression test case?
a) A representative sample of tests that will exercise all software functions
b) Additional tests that focus on software functions that are likely to be affected by the
change
c) Tests that focus on the software components that have been changed
d) Low-level components are combined into clusters that perform a specific
software sub-function
Conclusion:
92
PRACTICAL SET– 9
STUDY ESTIMATION OF TEST COVERAGE METRICS AND STRUCTURAL
COMPLEXITY.
What is Test Coverage Metrics?
Test coverage is defined as a “Technique which determines whether the test cases are actually
covering the application code and how much code is exercised while running those test cases”.
When we can count upon some things in an application and also tell whether the test cases are
covering those things of application, then we can say that we measure the coverage. So basically
the coverage is the coverage items that we have been able to count and see what items have been
covered by the test. The test coverage by two test cases executed can be the same but the input
data of 1 test case can find a defect while the input data of 2nd cannot. So with this we
understand the 100% coverage does not mean 100% tested.
To find the areas in specified requirement which is not covered by the test scenarios and
cases.
By determining the test coverage we can create more test cases to increase our test coverage.
By performing the test coverage we can measure how much testing is covered. This
indirectly means the check on quality of the application.
We can also identify some useless test cases which don’t have meaning in being executed
and thus omit them.
Testing Life becomes smooth by managing the risk based testing approach.
Traceability between the requirements and the test cases can be achieved by this technique.
Impact analysis and change tracking can be determined if we have proper test coverage.
Test coverage (also referred to by some as code coverage) is one of many metrics that are
commonly used to give a statistical representation of the state of the code written for a certain
piece of software. Other typical metrics include: Cyclomatic Complexity.
Identify basic blocks in a program module, and draw it's control flow graph (CFG)
Identify the linearly independent paths from a CFG
Determine Cyclomatic complexity of a module in a program
93
Control Flow Graph
A control flow graph (CFG) is a directed graph where the nodes represent different instructions
of a program, and the edges define the sequence of execution of such instructions. Figure shows
a small snippet of code (compute the square of an integer) along with it's CFG. For simplicity,
each node in the CFG has been labelled with the line numbers of the program containing the
instructions. A directed edge from node #1 to node #2 in figure 1 implies that after execution of
the first statement, the control of execution is transferred to the second instruction.
A program, however, doesn't always consist of only sequential statements. There could be
branching and looping involved in it as well. Following figure shows how a CFG would look
like if there are sequential, selection and iteration kind of statements in order.
94
A real life application seldom could be written in a few lines. In fact, it might consist of thousand
of lines. A CFG for such a program is likely to become very large, and it would contain mostly
straight-line connections. To simplify such a graph different sequential statements could be
grouped together to form a basic block. A basic block is a maximal sequence of program
instructions I1, I2, ..., In such that for any two adjacent instructions Ik and Ik+1, the following holds
true:
The size of a CFG could be reduced by representing each basic block with a node. To illustrate
this, let's consider the following example.
sum = 0;
i = 1;
while (i ≤ n) {
sum += i;
++i;
}
printf("%d", sum);
if (sum > 0) {
printf("Positive");
The CFG with basic blocks is shown for the code
}
Terminologies:
Path
A path in a CFG is a sequence of nodes and edges that starts from the initial node (or entry
block) and ends at the terminal node. The CFG of a program could have more than one terminal
nodes.
Linearly Independent Path:
A linearly independent path is any path in the CFG of a program such that it includes at least one
new edge not present in any other linearly independent path. A set of linearly independent paths
give a clear picture of all possible paths that a program can take during it's execution. Therefore,
path-coverage testing of a program would suffice by considering only the linearly independent
paths.
95
In figure of flow graph we can find four linearly independent paths:
1 - 3 - 6 - (7, 8) - 10
1 - 3 - 6 - (7, 8) - 9 - 10
1 - 3 - (4, 5) - 6 - (7, 8) - 10
1 - 3 - (4, 5) - 6 - (7, 8) - 9 – 10
Note that 1 - 3 - (4, 5) - 3 - (4, 5) - 6 - (7, 8) - 10, for instance, won't qualify as a linearly
independent path because there is no new edge not already present in any of the above four
linearly independent paths.
Method #1:V(G) = E - N + 2
Method #2: V(G) could be directly computed by a visual inspection of the CFG:V(G) =
Total number of bounded areas + 1It may be noted here that structured programming
would always lead to a planar CFG.
Method #3: If LN be the total number of loops and decision statements in a program,
then V(G) = LN + 1
In case of object-oriented programming, the above equations apply to methods of a class. Also,
the value of V(G) so obtained is incremented by 1 considering the entry point of the method. A
quick summary of how different types of statements affect V(G) could be found in. Once the
complexities of individual modules of a program are known, complexity of the program (or
class) could be determined by:V(G) = SUM( V(Gi) ) - COUNT( V(Gi) ) + 1where COUNT( V(Gi)
) gives the total number of procedures (methods) in the program (class).
96
References:
[1] Roger S.Pressman, Software engineering- A practitioner’s Approach, McGraw-Hill
International Editions
[2] http://vlabs.iitkgp.ernet.in/se/9/
97
Aim: Prepare CFG and calculate Cyclomatic Complexity for the following code.
{
A = 10
IF B > C THEN
A=B
ELSE
A=C
ENDIF
}
Print A
Print B
Print C
98
The cyclomatic complexity calculated for above code will be from control flow graph.
The graph shows seven shapes(nodes), seven lines(edges), hence cyclomatic
complexity is 7-7+2 = 2.
99
Post Practical Questions:
1. Architectural Design Metrics are ___________ in nature.
a) Black Box
b) White Box
c) Gray Box
d) Green Box
2. ______ is a white-box testing technique first proposed by Tom McCabe.
a) Equivalence Partitioning
b) Basis path testing
c) Boundary Value Analysis
d) None of the above.
3. Which of the following is software metric that provides a quantitative measure of the
logical complexity of a program?
a) Cyclomatic Complexity
b) LOC
c) Function Point
d) None of the above.
4. Cyclomatic complexity is computed as
a) The number of regions of the flow graph corresponds to the cyclomatic complexity.
b) Cyclomatic complexity, V(G), for a flow graph, G, is defined as V(G) = E _ N + 2
where E is the number of flow graph edges, N is the number of flow graph nodes.
c) Cyclomatic complexity, V(G), for a flow graph, G, is also defined as V(G) = P + 1
where P is the number of predicate nodes contained in the flow graph G.
d) All of the above.
5. In a flow graph, node that contains a condition and is characterized by two or more edges
emanating from it, is called as
a) Parent node
b) Two Edge node
c) Predicate node
d) None of the above.
6. Which of the following comes under the Control structure testing?
a) Condition testing
b) Loop testing
c) Data Flow Testing
d) All of the above.
100
7. What types of errors are not done by black-box testing and can be uncovered by white-
box testing?
a) Logic errors
b) Performance errors
c) Behavioral errors
d) None of the above.
8. Equivalence Partitioning comes under which type of testing?
a) White Box testing
b) Black Box testing
c) Grey Box testing
d) None of the above.
9. A set of paths are said to be linearly independent if
a) Each of them is distinct
b) No paths have a common node
c) No two paths have a common node
d) All the paths are pair wise distinct
10. According to McCabe's Cyclomatic complexity, V(G) = E - N + 2. Here, N is
a) No. of statements in the program
b) No. of unique operators used
c) No. of nodes in the CFG
d) No. of edges in the CFG
Conclusion:
101
PRACTICAL SET – 10
CASE STUDY ON SOFTWARE TESTING TOOLS.
Now days we can get lots of Software Testing Tools in the market. Selection of tools is totally
based on the project requirements & commercial (Proprietary/Commercial tools) or free tools
(Open Source Tools) you are interested. Off Course, free Testing Tools may have some
limitation in the features list of the product, so it’s totally based on what are you looking for & is
that your requirement fulfil in free version or go for paid Software Testing Tools.
This is where tools become helpful. Besides tools improve reliability, reduce turnaround time
and increase ROI.
They are various types of tools that assist in diverse testing activities ranging from requirements
capturing to test management.
But just a plain mention of tools and their corresponding characteristics would be boring. So we
have designed an interactive test to help you learn key features of the various testing tools.
Quality Center:
Type of Tool: TEST MANAGEMENT TOOL
Management of Tests
Scheduling of Tests
Management of Testing Activities
Interfaces to other testing tools
Traceability
QTP:
Type of Tool: TEST EXECUTION TOOLS
Key Features & Functionalities:
Storing an expected result in the form of a screen or GUI object and comparing it with
run-time screen or object
Executing tests from a stored scripts, Logging test results
Sending test summary to test management tools
102
Access of data files for use as test data
Load Runner:
Type of Tool: PERFORMANCE MEASUREMENT TOOLS
Key Features & Functionalities:
Case:
Type of Tool: REQUIREMENTS MANAGEMENT TOOLS
Key Features & Functionalities:
Storing Requirements
Identifying undefined, missing or to be defined requirements
Traceability of Requirements
Interfacing with Test Management Tools
Requirements Coverage
Source Anywhere:
Type of Tool: CONFIGURATION MANAGEMENT TOOL
Key Features & Functionalities:
In View:
Type of Tool: REVIEW TOOL
Key Features & Functionalities:
PMD:
Type of Tool: STATIC ANALYSIS TOOLS
Key Features & Functionalities:
Code Cover:
Type of Tool: Coverage Measurement Tool
Key Features & Functionalities:
References:
[1] https://www.softwaretestingclass.com/software-testing-tools-list/
[2] https://www.softwaretestinghelp.com/5-best-automation-tools-for-
testing-android- applications/
104
Aim: Prepare Case Study on any one topic given below.
1. SCM Tools
2. SQA Tools
3. Software Project Management Tool
SCM Tools
The minimum features for SCM tools are closely related to the task of handling the different product
deliverables produced within the project software engineering process. Tool requirements and selection criteria
are based on a series of features that provide a consistent look and feel with state-of-the-art software
development environments. An SCM tool must have multiuser support, an intuitive graphical user interface,
conformity to the organization's development environment, scalability, flexibility in integrating other software
development tools, ease of setup, modifiable models, process management, extensive support for the
development phase, and management of nondevelopment objects.
105
Post Practical Questions:
1. Which of the following term describes testing?
a) Finding broken code
b) Evaluating deliverable to find errors
c) A stage of all projects
d) None of the mentioned
2. What is Cyclomatic complexity?
a) Black box testing
b) White box testing
c) Yellow box testing
d) Green box testing
106
8. Behavioural testing is
a) White box testing
b) Black box testing
c) Grey box testing
d) None of the mentioned
9. Which of the following is black box testing
a) Basic path testing
b) Boundary value analysis
c) Code path analysis
d) None of the mentioned
10. Which of the following is not regression test case?
a) A representative sample of tests that will exercise all software functions
b) Additional tests that focus on software functions that are likely to be affected
by the change
c) Tests that focus on the software components that have been changed
d) Low-level components are combined into clusters that perform a specific
software sub- function
Conclusion:
107