Software Engg Lab Manual
Software Engg Lab Manual
Software Engg Lab Manual
MISSION
To provide quality technical education through state-of-the- art infrastructure
and well qualified and experienced faculty.
Having academic flexibility through strong industry academia interactions.
Focus on students' employability, entrepreneurship, higher education and
competitive examinations.
Mission
To educate the students in the field of Computer-Science with ever-changing
technologies and skills.
To enable the students in solving real-time problems and make use of new
technologies.
To have industry collaboration and interaction with professional societies for
continuous development.
To help students in becoming successful entrepreneurs
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
PO2: Problem analysis: Identify, formulate, research literature, and analyze complex engineering
problems reaching substantiated conclusions using first principles of mathematics, natural sciences,
and engineering sciences.
PO3: 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.
PO4: 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
PO5: 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.
PO6: 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.
PO7: Environment and sustainablity: Understand the impact of the professional engineering solutions
in societal and environmental contexts, and demonstrate the knowledge of, and need for sustainable
development.
PO8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
PO9: Individual and team work: Function effectively as an individual, and as a member or leader in
diverse teams, and in multidisciplinary settings.
ACADEMIC
CALENDAR
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
LAB
COURSE SYLLABUS
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Program: BCA L: 0 T: 0 P: 4
Branch: Computer Applications Credits: 2
Semester: 4th Contact hours: 4 hours per week
Theory/Practical: Practical Percentage of numerical/design problems: --
Internal max. marks: 60 Duration of end semester exam (ESE): 3hrs
External max. marks: 40 Elective status: Core
Total marks: 100
Prerequisite: -NA-
o requisite: -NA-
Additional material required in ESE: -NA-
Assignments:
6. Use any model for estimating the effort, schedule and cost of software project
7. Develop DFD model (level-0, level-1 DFD and Data dictionary) of the project
8. Develop sequence diagram
9. Develop Structured design for the DFD model developed
10. Develop the waterfall model, prototype model and spiral model of the product
11. Explain with reason which model is best suited for the product
15. Using any Case Tool find number of statements, depth and complexity of the
prototype
Reference Books:
COURSE PRE-REQUISITES:
COURSE OBJECTIVES:
S.NO. SEDCRIPITION
1. Students will be capable to acquire the generic software development skill through
various stages of software life cycle.
2. Software Engineering is the systematic approach to the development ,operation,
maintenance and retirement of software.
3. Software Engineering is used basic structure modelling, UML.
COURSE OUTCOMES:
SNo. DESCRIPTION PO(1..10) MAPPING
CO1 Licit, analyze and specify software requirements. PO(1,2,8)
CO# DESCRIPTION PO PO PO PO PO PO PO PO PO PO
1 2 3 4 5 6 7 8 9 10
CO1 Licit, analyze 1 2 2 - - - - 1 1 -
and specify
software
requirements.
CO2 Analyze and - 2 2 1 - - - - 2 -
translate a
specification into a
design
SNO PO JUSTIFICATION
MAPPED
CO1-PO1 L Apply knowledge of basic to solve problem of software engineering.
CO5-PO1 M The knowledge of implantation and testing provide the methods that can
be apply to complex problems.
CO5-PO3 M Able to design system components and processes to meet the specified
requirements.
CO5-PO4 L Use modern software engineering tools for specification, design,
implementation, and testing
CO5-PO5 M Helps to identify the problems in testing and implementation by using
modern tools and applying appropriate techniques for solution of complex
engineering activities.
CO5-PO8 L To perform functionality effectively as an individual, and as a member or
leader in diverse/multidisciplinary teams on specific software design,
implementation and testing.
CO5-PO9 L Able to communicate effectively in software engineering requirements.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
DELIVERY/INSTRUCTIONAL METHODOLOGIES:
CHALK & ☐ STUD. WEB RESOURCES NPTEL/OTHERS
TALK, PPT ASSIGNMENT
LCD/SMART ☐ STUD. ☐ ADD-ON COURSES ☐ WEBNIARS
BOARDS SEMINAR
S
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
ASSESSMENT METHODOLOGIES-DIRECT
ASSESSMENT METHODOLOGIES-INDIRECT
ASSESSMENT OF COURSE OUTCOMES (BY STUDENT FEEDBACK ON FACULTY
FEEDBACK, ONCE) (TWICE)
☐ ASSESSMENT OF MINI/MAJOR PROJECTS BY ☐ OTHERS
EXT. EXPERTS
1. Group Discussion.
2. PPT by students.
3. Open book test.
4. Online courses
5. MCQ’s
Prepared by Approved by
(Ms. Shivani Thakur) HOD
COURSE PLAN
VISION:
To provide imperative skills to students for meeting industry needs, and to become responsible engineers,
entrepreneurs and citizens.
MISSION:
To educate the students in the field of Computer-Science with ever-changing technologies and
skills.
To enable the students in solving real-time problems and make use of new technologies.
To have industry collaboration and interaction with professional societies for continuous
development.
To help students in becoming successful entrepreneurs.
Contact L Total
Subject: Software Engineering Semester
Hour: 4 hours 4 = 4
Laboratory (UGCA1924) : th
4 per week
Branch: Computer Applications Faculty: Shivani Thakur
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Course
Lecture Proposed Actual
Topics/Sub Topics Outcome Remarks
No. Addressed Date Date
Identify project scope and objective
of given problem:
1. CO1
a. College automation system.
T/R Description
1 https://www.javatpoint.com/software-engineering-tutorial
2 https://www.geeksforgeeks.org/software-engineering-introduction-to-software-engineering/
3 https://www.tutorialspoint.com/software_engineering/
4 https://youtu.be/FBR0_YLkB0Q
5 https://youtu.be/5EluCeNlQC4
6. https://youtu.be/USUI7SH0OJ8
Prepared by Approved by
((Ms. Shivani Thakur) (HOD)
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Wednesday BREAK
SE LAB
Thursday
BCA 4B1
SE LAB SE LAB
SE LAB
Friday TUTE TUTE
BCA 4B BCA 4B2 BCA 4A
Experiment -5
11 How do you represent a project schedule?
Experiment -6
12 What is software testing estimation?
Experiment -6
13 Define COCOMO Model?
Experiment -7
14 What is DFD in project?
Experiment -7
15 What is 0-level DFD with example?
Experiment -8
16 What is level -1 DFD with example?
Experiment -8
17 What is sequence diagram in software engineering?
Experiment -8
18 What is purpose of sequence diagram?
19 Experiment -9 How DFD model of a system are developed in software engineering?
Experiment -10 What is waterfall model and spiral model?
20
Experiment -10 Define prototype model?
21
Chandigarh School of Business
Jhanjeri, Mohali-140307
22 Experiment -11 Department
Which process model is of
bestComputer
and why? Applications
23 Experiment -11 How do I choose the right process model?
24 Experiment -12 What are the problems of software engineering?
25 Experiment -13 What is cyclomatic complexity explain with suitable examples?
26 Experiment -13 How is cyclomatic complexity calculated in software engineering?
LAB
MANUAL
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Experiment 1
Aim: Identity project scope and objective of given problem:
a) College automation system.
b) b) Banking Management System.
College automation system
FUTURE SCOPE
It is more efficient and convenient for the colleges. It reduces the man power needed to perform different
tasks by reducing the paper work’s needs. If all the works are done by computer there will be no chance
of errors. More ever storing and retrieving of the information is easy, so work can be done speedily and
in time.
Features:
• User friendly
• Very less paper works
• Computer operator control
• Responsiveness increases
Objectives:
The main objective of the system is to reduce the consumption of time during maintenance of record of the
college students. The head of the department’s role also include the maintenance of the details of the
teacher. He can also maintain the attendance of each of his students under his department. He will fill in
the internal of the student that will directly go to the examination department in a tabular format so that
they do not have any hesitation in calculating the final marks of the students. In other words our college
automation system has, following objectives:
Project Objective
• To allow only authorized user to access various function and processed available in the system.
A computer based management system is designed to handle all the primary information required to
calculate monthly statements of customer account which include monthly statement of any month.
Separate database is maintained to handle all the details required for the correct statement calculation and
generation.
This project intends to introduce more user friendliness in the various activities such as record
updation, maintenance, and searching. The searching of record has been made quite simple as all the
details of the customer can be obtained by simply keying in the identification or account number of that
customer.
Similarly, record maintenance and updating can also be accomplished by using the account number with
all the details being automatically generated. These details are also being promptly automatically updated
in the master file thus keeping the record absolutely up-to-date.
The main objective of our project is providing the different typed of customers facility, the main objective
of this system is to find out the actual customer service. Etc.
This project includes the entire upgraded feature required for the computerization banking system. This
system is very easy to use, so that any user can use without getting pre-knowledge about this. It’s very
much user friendly. This system is completely GUI based and can be used by mouse and as well as
keyboard. This system is melded in such a way that has got all features to upgrade without making much
change in existing components.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Experiment 2
Aim: Develop software requirements specification for
(1.a).college automation system.
Purpose
This document describes the software requirements specifications for the college management system that
provides the access and management of information of different modules in a college-like students,
guardians, teachers/faulty, finance ,examination, HR. our project is based on a database, which stores and
maintains the information of different modules within the system. the advantages of the management
system is avoid entries in hard copies and it saves the burden of hard copies of data. The system is a
desktop application and GUI for this system is developed in c#. the database for this management system
is created in SQL there are two users for this system 1.Admin 2.Teacher .
The purpose of this document is to retrieve and analyze the ideas that define the product and requirements
that the user needs. This document describes the details of our product, its parameter, and its goals. This
SRS document describes the target, audience, user interface of product and Software/Hardware
requirements of our product. This document also describes the problem we have faced during the
designing and implementation of the product and also describes how we have solved this problem and
make our product more efficient. The management system saves the human power and time cost to
perform the same task. The data in the database can be saved for a long time and can be used for different
purposes in the future. In management systems, there is a minor chance of losing the data. This document
also defines how customers and users see our product and understand
the functionality of the product. This document will help the developers/designers in case of maintenance
of the software product.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Problem Statement
“Manual College systems were paper-based and difficult to maintain, expensive, more manpower required
and unable to handle large records, the previous system was not efficient, not effective and there were
issues of redundancy and consistency.”
Proposed System
In this project, the system is proposed by understanding the issues in the existing system. In this
management system the problems are solved that were in the previous system by shifting on a
computerized system of the modern age. The database is used to store the data at the backend of the
system. The graphical interface GUI is developed in C#. In a certain way get the data from the user and
store it into the database. Reports of stored data are generated through Crystal reports. The system that is
proposed provides consistent and redundancy free data in storage and should be more efficient .This
system provides the security of data by authentication of users and in this project right of users are defined.
In this system, admin is the main user of the system who has full rights of all modules within the proposed
system and the other user which is an employee of college also can be a teacher within the college has
limited access to the system like students attendance and marks of the students are managed by the
employee. In this product, different reports can be generated, pay slips of employee salary, fee report of
fee payment if students, student details, attendance report, etc.
The main modules which are focused on this project:
• Student management
• Employee management
• Student Fee management
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Operating Environment
The CMS is expected to be deployed in a real environment to manage the DBMS inside the college. The
centralized database is used to store the information. The user only within the college (members of college
staff) can use this management system. Users outside form the college cannot access the management
system. This application is developed for windows operating system that can be run on Windows XP and
above.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
The database is used in different departments within a branch of the college. The database used to store the
information is the centralized database. The software we have developed will be installed on different
computer systems within a college and software will be connected to a centralized database through LAN
within a college and then the user can interact with the system and can store the data and other users can
get access the stored through a centralized database.
Methodology of Project
We developed our product using the software development life cycle. In the development of our product,
we use the Agile model. The Agile model is a model of SDLC which is a combination of two process
models incremental and iterative. CMS is developed on the basis of incremental process model of the
Agile model which allows the user to divide the large project into different parts/ modules.
In the incremental model the versions/parts of the system are delivered to the user after a regular interval
of time, to get feedback from the user that is it cleared or he/she want any more changes in the given
module. If the user wants any type of change in the product then it is possible through the incremental
model.After the decided time each new part of the product is developed and delivered to the user and then
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
at the end when all parts are developed, all modules/parts are combined in a way to develop the full
product to deliver to the user in the form of finished/complete application as user’s requirements.
Communication between client and developer is an important part of the agile model. The product will
fulfill the user’s requirement in the case when there is maximum communication between developer
and client so the application will be more accurate. The finished product should accept the changes in
the future.
2. General Description
3. Functional specifications
3.1 Login
3.2 Validation
3.3Payment of money
3.4Transfer of money
3.5Transaction report
4. Interface Requirements
4.1 GUI
5. Performance Requirements
6. Constraints
7. Performance
7.1 Security
7.2 Reliability
7.3 Availability
7.4 Maintainability
7.5 Reusability
1. Introduction
This document gives detailed functional and nonfunctional requirements for the bank management
system. This product will support online banking transaction. The purpose of this document is that the
requirements mentioned in it should be utilized by software developer to implement the system.
1.1 Purpose
Online banking system provides is specifically developed for internet banking for Balance Enquiry, Funds
Transfer to another account in the same bank, Request for cheque book/change of address/stop payment of
cheques , Mini statements (Viewing Monthly and annual statements).
The Traditional way of maintaining details of a user in a bank was to enter the details and record them.
Every time the user need to perform some transactions he has to go to bank and perform the necessary
actions, which may not be so feasible all the time. It may be a hard-hitting task for the users and the
bankers too. The project gives real life understanding of Internet banking and activities performed by
various roles in the supply chain. Here, we provide an automation for banking system through Internet.
Internet banking system project capturesactivities performed by different roles in real life banking which
provides enhanced techniques for maintaining the required in- formation up-to-date, which results in
efficiency. The project gives real life understanding of Internet banking and activities performed by
various roles in the supply chain.
1.2 Scope
This Product will automate of banking transaction process.This Project investigates the entry threshold
for providing a new transaction service channel via the real options approach, where the entry
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
threshold is established by using an Internet banking system designed for the use of normal
users(individuals), Industrialists, Entrepreneurs, Educational Institutions(Financial sections),
Organizations and Academicians under transaction rate uncertainty.
1.3 Overview
The system provides easy solution to banks.
2. General description
2.1 Product Perspective:
The client will have client interface in which he can interact with the banking sys- tem. It is a web based
interface which will be the web page of the banking application. Starting a page is displayed asking the
type of customer he is whether ordinary or a corporate customer. Then the page is redirected to login
page where the user can enter the login details. If the login particulars are valid then the user is taken to a
home page where he has the entire transaction list that he can perform with the bank. All the above
activities come under the client interface.
The administrator will have an administrative in- terface which is a GUI so that he can view the entire
system. He will also have a login page where he can enter the login particulars so that he can perform
all his actions. This administrative interface provides different environment such that he can maintain
data- base & provide backups for the information in the database. He can register the users by providing
them with username, password & by creating account in the database. He can view the cheque book
request & perform action to issue the cheque books to the clients.
* Web Server:
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
* Back End:
We use backend as MY SQL.
3. Functional Specifications
This section provides the functional overview of the product. The project will require the PHP as a front
end and at the back end the database MYSQL will be running. Various functional modules that can be
implemented by the product will be
1. Login
2. Validation
4. Withdrawal of money
5. Transfer Money
6. Customer info.
3.1 Login:
Customer logins by entering customer name & a login pin.
3.2 Validation:
When a customer enters the ATM card, its validity must be ensured. Then customer is allowed to enter the
valid PIN. The validation can be for following conditions
This system must be networked to the bank’s computer. The updated database of every customer is
maintained with bank. Hence the balance information of every account is available in the database and
can be displayed to the customer.
A customer is allowed to enter the amount which he/she wishes to withdraw. If the entered amount is less
than the available balance and if after withdraw if the minimum required balance is maintained then allow
the transaction.
3.4 Transfer of Money:
The bank statement showing credit and debit information of corresponding account must be printed by the
machine.
4. Interface Requirements
4.1 GUI
This is interface must be highly intuitive or interactive because there will not be an assistance for the user
who is operating the System. At most of the places help desk should be provided for users convenience.
The screens appearing should be designed in such a manner that it can
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
draw User attraction towards the new plans for the customers. Also the pin and password confidentiality
should be maintained, this can be done by using asterisks at the password panel.
Proper security messages should be displayed at most of the places.
1. Touch screen/Monitor
2. Keypad
3. Continuous battery backup
4. Printer which can produce the hard copy.
5. Interface that connects the device to bank’s computer.
6. An interface that can count currency notes.
4.3 Software Interface
1. Any windows operating system.
2. The PHP must be installed. For the database handling MYSQL must be installed. These products
are open source products.
3. The final application must be packaged in a set up program, so that the products can be easily installed
on machines. This application must be networked to corresponding banks.
5. Performance Requirements
The system should be compatible enough to hold the general traffic .
It should not get hang or show some other problems arising out due to large no of concurrent users . The
system should be fast enough to meet the customer The high and low temperature should not affect the
performance of the device. An uninterrupted transaction must be performed.
6. Constraints
* The information of all the users must be stored in a database that is accessible by the On- line
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Banking System.
* The Online Banking System is connected to the computer and is running all 24hours a day.
* The users access the Online Banking System from any computer that has Internet browsing
capabilities and an Internet connection.
*The users must have their correct usernames and passwords to enter into the Online Banking System.
Design Constraints:
7. Database design
In our database design, we give names to data flows, processes and data stores.
Although the names are descriptive of data, they do not give details .So following DFD, our interest is to
build some details of the contents of data flows, processes and data store. A data dictionary is a structured
repository of data about data .It is a set of rigorous definitions of all DFD data elements and data
structures .
8. Performance
• Security
The banking system must be fully accessible to only authentic user.
It should require pin for entry to a new environment.
• Reliability
The application should be highly reliable and it should generate all the updated information in correct
order.
• Availability
Any information about the account should be quickly available from any computer to the authorized user.
The previously visited customer’s data must not be cleared.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
• Maintainability
The application should be maintainable in such a manner that if any new requirement occurs then it should
be easily incorporated in an individual module.
• Portability
The application should be portable on any windows based system. It should not be machine specific.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 3
Aim: Develop UML case model for a problem.
What is a use case diagram?
In the Unified Modeling Language (UML), a use case diagram can summarize the details of your system's
users (also known as actors) and their interactions with the system. To build one, you'll use a set of
specialized symbols and connectors. An effective use case diagram can help your team discuss and
represent:
• Scenarios in which your system or application interacts with people, organizations, or external
systems
• Goals that your system or application helps those entities (known as actors) achieve
• The scope of your system
• Actors: The users that interact with a system. An actor can be a person, an organization, or an
outside system that interacts with your application or system. They must be external objects that
produce or consume data.
• System: A specific sequence of actions and interactions between actors and the system. A system
may also be referred to as a scenario.
• Goals: The end result of most use cases. A successful diagram should describe the activities and
variants used to reach the goal.
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.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
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.
EXPERIMENT 4
Aim: Develop class diagrams .
Class Diagram Definition | What is a Class Diagram?
A class diagram is a UML diagram type that describes a system by visualizing the different types of
objects within a system and the kinds of static relationships that exist among them. It also illustrates the
operations and attributes of the classes.
They are usually used to explore domain concepts, understand software requirements and describe detailed
designs.
The first one shows the class’s name, while the middle one shows the class’s attributes which are the
characteristics of the objects. The bottom one lists the class’s operations, which represents the behavior of
the class.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
The last two compartments are optional. The class notation without the last two compartments is called a
simple class and it only contains the name of the class.
The interface symbol in class Diagrams indicates a set of operations that would detail the responsibility
The package symbol is used to group classes or interfaces that are either similar in
nature or related. Grouping these design elements using the package symbols
improves the readability of the diagram
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
To learn about the class diagram connector types and the different relationships between classes in detail, refer
to our handy guide on class diagram relationships.
For a full list of class diagram notations/ class diagram symbols refer to this post.
EXPERIMENT 5
Aim : Project scheduling.
What is scheduling in project management?
As you might imagine, a project schedule contains more than your average weekly planner notes. Project
scheduling involves creating a document, these days usually a digital document, that details the project
timeline and the organizational resources required to complete each task .The project schedule must be
accessible to every team member. Its purpose is to communicate critical information to the team, so it must
be comprehensive and easy to understand.
This document also establishes who has the authority to make schedule changes, the process team
members should follow in order to request a change, and a project communication plan to alert the team
of changes made during the course of the project.
3. Determine dependencies
Once you have all the project activities listed, think through each one carefully to identify which tasks rely
on others to be completed. If you’re building a house, for example, you can’t put the roof on until the
frame is completed. It’s important to correctly define all your dependencies so you can schedule
accurately and avoid project delays.
All-in-one project management solution
4. Sequence activities
After you’ve established project dependencies among your activities, you can sequence them. At this
point, you aren’t assigning any time to your activities in terms of work hours or due dates. Instead, you’re
focusing on the order in which all project activities should be done so that the most efficient flow is
created.
5. Estimate resources
Each activity in your project will require resources in the form of personnel, subcontractor costs, tools
(physical and/or digital tools like software programs), and workspace. Make sure to consider other
resources that are specific to your industry or project. Estimate the resources needed for each project
activity.Remember that resource allocation will affect your schedule; if the same team member is
responsible for multiple tasks, they can’t be completed at the same time.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
6. Estimate durations
This step is pretty obvious but very important. How long will each project activity take? Underestimating
will, of course, put you behind schedule and ultimately frustrate your customer.Overestimating could leave
team members or other resources sitting idle as they wait for antecedent tasks to be completed. The best
way to estimate duration is to use data from similar previous jobs.
If you don’t have any data to work from and there’s no industry standard to which you can refer, an
estimate based on the average of the best, worst, and most likely scenarios.
1. Task lists
This is the simplest scheduling technique and works for small projects without a lot of interdependencies.
However, for larger projects, it may not be the right choice as tracking the progress can become a major
challenge.
The task list contains the list of tasks and subtasks along with the team members assigned to do them. A
simple project management software can come handy when you’re using task lists.
2. Calendar
The calendar can be used to depict the project timelines of all the tasks throughout the course of the
project. It’s a decent approach to view overlaps between activities. But, this approach suffers from an
inability to assign tasks and view dependencies.
3. Gantt charts
A Gantt chart is the most common tool used by project managers to visualize the timelines and
dependencies in a project. You can get a quick estimate of the time required to complete every task.
The chart shows all the tasks, represented by bars, when they’re set to start and end, how long each task
will last, task dependencies, and where there are overlaps.
EXPERIMENT 6
Aim:- Use any model for estimating the effort, schedule and
cost of software project.
5 Steps to Software Development Effort Estimation
The software development effort estimation is an essential activity before any software project initiation .
Easily estimate the software effort using known estimation techniques which are Function Points Analysis
( FPA ) and Constructive Cost Model ( COCOMO ) .
What is Estimation and why it is important ?
The estimation is a process to find the most accurate sizing figure for the software project effort , for
example , how many months you will need to develop the software , how many resources you will need to
finish the project in the required time . And this translated to money at the end .
The estimation is important because it gives the project team some confidence about the required effort
and time to plan ahead for the project . Moreover , not all software project is time and material contracts ,
some of them are fixed cost projects and this estimate will be used as a foundation to negotiate the project
cost .
1- Scoping
You need first to scope the project even if you do not have the full detailed requirements but you can
assume some of them or add margins later . While in most cases you will have a defined scope to start with
. You can always list your assumptions to justify the outcome of the estimation process and its results .
2- Decomposition
In this step , you will need to break your software into smaller components and functions and you can
categorize them to a different set of elements , this is similar to work breakdown structure but only for the
software components not all the working activities for the software . the customer to ensure that You may
also collect different data from the project team you have listed all functionalities .
3- Sizing
In this step , the actual estimation will be done for each component alone , and I will illustrate more about
how you will do that using the techniques mentioned above , this will be illustrated in 8 steps in details
below .
In this step , and for more validation , you can use different estimation techniques to analyze the different
estimation outputs and you may take an average of these estimates as well.
4- Expert and Peer Review After initial estimate , you will need at some point to ask for expert opinion
for some new functionalities you may not aware off , or for considering a review from your peers that you
have done the correct estimation . Moreover , you may need to do some analogy based techniques for
similar components or functions developed before or maybe a similar project to ensure that you are on the
correct path .
5- Estimation Finalization
This can be considered the final step as you aggregate all the estimations from all components and
functions and have a baseline estimate . You can go another round across the process until reaching the
correct estimate which will be approved by the Project team and the Management as well
How to Size
Before we start by describing the 8 sizing steps let us introduce briefly the techniques we will use to size
the project effort .
FPA can be helpful to estimate the effort for a software project at the early stage when the requirements
are known , but the details of implementation have not yet been specified or evaluated . Which is actually
the most case of the software projects .
To use the FPA , these are the steps to follow after defining the scope and decompose the system
functionality and components.
Step 1
We will start with the FPA after we scoped the requirements and decompose the functions , we are ready
to identify the inputs , outputs , file accesses and interfaces to external systems . FPA is measured based on
these below elements :
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
1. Internal Logical Files ( ILF ) : It is a group of logically related data that is stored and maintained
within the application , for example , databases and files
2. ExternalInterface Files ( EIF ) : is a group of logically related data that will be used by the
application . The difference that these data will not be maintained in the application , for example ,
external databases .
3. External Input ( El ) : It is mainly the data transactions which will be inserted into the
application from outside the application boundary , for example , Data entry process
4. External Output ( EO ) : It is mainly the output of the system functions , for example ,
a transactional data into the database , messages or a report
5. External Inquiry ( EQ ) : It used to present information to a user through the retrieval of data from
ILF or Elf , for example , search queries , or exporting a report
The image below , illustrate the software context based on FPA , and how other users or systems interact
with our software . Now , we will need to list the 5 elements for each subsystem , component , or function
to do the next step.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
step 2
The next step is to relate our functions to these complexity levels and apply the weightings for each one ,
for example , let us assume that we have the following outcome from our functional points
Components List Inputs (EI) Outputs (EC) Files(ILF ) Inquiries (EQ) Interfaces(EIF )
Component 1 1 S*3=3 1 S*4=4 2 A*10=20 2 S*3=6 1 C*10=10
2 C*7=14
1 C*6=6
2 C*6=12
As we can see in the table , that we have 3 components and after we applied the weights for each one , we
can see that each one can have more than one input for example , and we can estimate each input weight
according to our judgment of this input complexity . In component 3 we have 3 average inputs and 2
complex input but we do not have any inquiries Step 3:
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
You can do the same for all the software components or functions and this will lead us to the next step of
calculating the unadjusted function points by summation of all weights.
Unadjusted Function Points ( UFP ) = ( n * EI ) + ( n x EO ) + ( n x EQ ) + ( n * ILF ) + ( n * EIF )
Step 4
The next step , we will need to calculate Value Adjustment Factor , the VAF consists of 14 General
System Characteristics ( GSCs ) which are listed below . These GSCs represent characteristics of the
application under consideration how the degree of influence for each factor on the system .
According to Quantitative Software Management they created a table contains updated function point
language gearing factors for 37 distinct programming languages / technologies . We will use this table to
calculate the KLOC by using this equation
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
People required ( P ) = Effort Applied / Development Time = 35 / 9.7 = +/- 3.6 Persons
Development Productivity = LOC / Effort Applied = 10,000 / 35 = 286 LOC / Person Month
We have calculated this without calculating the Effort Adjustment Factor ( EAF ) , Intermediate
COCOMO provides 15 attributes rated on a six - point scale that ranges from " very low " to " extra high "
, these 15 attributes called the cost drivers . For each one of them , you can describe how the project is
related to this attribute , for example , Required development schedule which is 10 months we can select a
nominal value for this attribute.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
After identifying the weights for all cost drivers , you can multiply all of them to get the EAF . Then , we
can now calculate the adjusted effort according to the below equation :
Step 8
Now , we can apply the cost estimate by calculating the cost of every staffed person * Effort Applied , for
example , if all staff have fixed 2K $ Person Month the cost will be
2,000 * 35 = 70K $
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 7
Aim: Develop DFD model (level-0,level-1 DFD and Data
dictionary) of the project.
Data Flow Diagram (DFD) of a system represents how input data is converted to output data graphically.
Level 0 also called context level represents most fundamental and abstract view of the system.
Subsequently other lower levels can be decomposed from it. DFD model of a system contains multiple
DFDs but there is a single data dictionary for entire DFD model. Data dictionary comprises definitions of
data items used in DFD.
Context diagram :
It demonstrates entire data flow of a system in a single process/ bubble. Bubble is annotated with ‘Noun’
representing whole system. This is only bubble in DFD where a noun, (in the form of name of a system) is
used. It is named since purpose of context diagram is to grab che context of system and not functionality.
All other bubbles have a verb according to main function performed by it.
Context diagram shows three main things : users, data flow to system and from system. It captures various
external entities interacting with system, data to and from system as incoming and outgoing arrows.
Context diagram requires analysis of SRS document. Data flow is represented with data names on top of
arrow.
Decomposition :
Bubbles are decomposed into sub functions at successive levels of DFD level.
Decomposition is called exploding/factoring a bubble. Each bubble at any level
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
can be broken to anything between 3 and 7 bubbles. But a bubble should not be decomposed further once it
is found to represent simple set of instructions. Too many bubbles at any level makes dfd hard to
understand. Very less bubble makes decomposition redundant and trivial.
Numbering :
Each process symbol must utilize a unique reference number to differentiate from one other. When a
bubble x is decomposed, its children are numbered as x.1, x.2 and so on. It can help determine its
ancestors, successors, and precisely its level. For example level 0 DFD is numbered as 0. Level 1 are
numbered as 0.1, 0.2, 0.3 or 1, 2, 3 and so on. Level 2 are marked as 1.1, 1.2, 1.3 etc.
Balancing DFD :
Parent dfd having inflow and out flow of data should match data flow at next child level. This is known as
balancing a DFD. Concept is illustrated in figure :
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
In Level 1 DFD, data items D1 flow out of bubble 2 and item D2 flows into bubble 2. In next level,
bubble 2 is decomposed into three sub process(2.1, 2.2, 2.3). It has data item D1 flowing out and D2
flowing in. So DFD is balanced here.
A bubble representing a process should have minimum one input and one output flow. When a bubble has
input flow without any output flow, it is known as “black hole”. When a process has output flows but no
input flows, it is called a “miracle”. A processing step may have outputs that are greater than sum of its
inputs is called Grey holes.
• DFDs should always be balanced at all levels. Dataflow in and out of parent process must
be present in child diagram.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
• Context level bubble always contains name of entire system in form of noun and no verb can
be used in its representation. Whereas all other levels only have verb in bubble representation.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
• There should not be any database in level 0. Level 0 contains only one bubble and external
entities.
• No cluttering should be depicted in DFD. When too may data flowing occurs in and out of DFD,
combine these data item into high level item.
All bubbles having unique process in DFDs should be connected to another process or to a data store. It
cannot exist by itself, unconnected to rest of system.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 8
Aim : Develop sequence diagram .
What is a Sequence Diagram?
Sequence diagrams, commonly used by developers, model the interactions between objects in a single use
case. They illustrate how the different parts of a system interact with each other to carry out a function, and
the order in which the interactions occur when a particular use case is executed.
In simpler words, a sequence diagram shows different parts of a system work in a ‘sequence’ to get
something done.
A sequence diagram is made up of several of these lifeline notations that should be arranged horizontally
across the top of the diagram. No two lifeline notations should overlap each other. They represent the
different objects or parts that int
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
A lifeline with a boundary element indicates a system boundary/ software element in a system; for
example, user interface screens, database gateways or menus that users interact with, are boundaries.
Activation Bars
Activation bar is the box placed on the lifeline. It is used to indicate that an object is active (or
instantiated) during an interaction between two objects. The length of the rectangle indicates the duration
of the objects staying active.
In a sequence diagram, an interaction between two objects occurs when one object sends a message to
another. The use of the activation bar on the lifelines of the Message Caller (the object that sends the
message) and the Message Receiver (the object that receives the message) indicates that both are active/is
instantiated during the exchange of the message.
Message Arrows
An arrow from the Message
Caller to the Message Receiver
specifies a message in a
sequence diagram. A
message can flow in any
direction; from left to right,
right to left or back to the
Message Caller itself. While
you can describe the message
being sent from one object to
the other on the arrow, with
different arrowheads you can
indicate the type of
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Synchronous message
As shown in the activation bars example, a synchronous message is used when the sender waits for the
receiver to process the message and return before carrying on with another message. The arrowhead used
to indicate this type of message is a solid one, like the one below.
Asynchronous message
An asynchronous message is used when the
message caller does not wait for the receiver to
process the message and return before sending
other messages to other objects within the system.
The arrowhead used to show this type of message is a line arrow like shown in the example below.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Return message
A return message is used to indicate that the message receiver is done processing the message and is
returning control over to the message caller. Return messages are optional notation pieces, for an
activation bar that is triggered by a synchronous message always implies a return message.
Tip: You can avoid cluttering up your diagrams by minimizing the use of return messages since the return
value can be specified in the initial message arrow itself. Return Message Example
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Reflexive message
When an object sends a message to itself, it is called a reflexive message. It is indicated with a message
arrow that starts and ends at the same lifeline as shown in the example below.
Comment
UML diagrams generally permit the annotation of comments in all UML diagram types. The comment
object is a rectangle with a folded-over corner as shown below. The comment can be linked to the related
object with a dashed line.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 9
Aim : Develop structured design for the DFD model
development.
A DFD model of a system graphically depicts the transformation of the data input to the system to the final
result through a hierarchy of levels. A DFD starts with the most abstract definition of the system (lowest
level) and at each higher level DFD, more details are successively introduced. To develop a higher-level
DFD model, processes are decomposed input data to these functions and the data output by these functions
and represent them appropriately in the diagram. If a system has more than 7 high- level functional
requirements, then some of the related requirements have to be combined and represented in the form of a
bubble in the level 1 DFD. Such a bubble can be split in the lower DFD levels. If a system has less than
three high-level functional requirements, then some of them need to be split into their subfunctions so that
we have roughly about 5 to 7 bubbles on the diagram.
Decomposition:- Each bubble in the DFD represents a function performed by the system. The
bubbles are decomposed into sub-functions at the successive levels of the DFD. Decomposition of a bubble
is also known as factoring or exploding a bubble. Each bubble at any level of DFD is usually decomposed
to anything between 3 to 7 bubbles. Too few bubbles at any level make that level superfluous. For
example, if a bubble is decomposed to just one bubble or two bubbles, then this decomposition becomes
redundant. Also, too many bubbles, i.e. more than 7 bubbles at any level of a DFD makes the DFD model
hard to understand. Decomposition of a bubble should be carried on until a level is reached at which the
function of the bubble can be described using a simple algorithm.
Numbering of Bubbles:-
It is necessary to number the different bubbles occurring in the DFD. These numbers help in uniquely
identifying any bubble in the DFD by its bubble number. The bubble at the context level is usually
assigned the number 0 to indicate that it is the 0 level DFD. Bubbles at level 1 are numbered, 0.1, 0.2, 0.3,
etc, etc. When a bubble numbered x is decomposed, its children bubble are numbered x.1, x.2, x.3, etc. In
this numbering scheme, by looking at the number of a bubble we can unambiguously determine its level,
its ancestors, and its successors.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Example:-
A supermarket needs to develop the following software to encourage regular customers. For this, the customer
needs to supply his/her residence address, telephone number, and the driving license number. Each customer who
registers for this scheme is assigned a unique customer number (CN) by the computer.
A customer can present his CN to the checkout staff when he makes any purchase. In this case, the value of
his purchase is credited against his CN. At the end of each year, the supermarket intends to award surprise
gifts to 10 customers who make the highest total purchase over the year. Also, it intends to award a 22
caret gold coin to every customer whose purchase exceeded Rs.10,000. The entries against the C N are the
reset on the day of every year after the prize winners’ lists are generated.
Chandigarh School of Business Jhanjeri, Mohali-140307
Department of Computer Applications
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 10
Aim: Develop the waterfall model, prototype model and
spiral model of the product.
▪ Waterfall model
Winston Royce introduced the Waterfall Model in 1970.This model has five phases: Requirements analysis
and specification, design, implementation, and unit testing, integration and system testing, and operation
and maintenance. The steps always follow in this order and do not overlap. The developer must complete
every phase before the next phase begins. This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of waterfalls.
2. Design Phase: This phase aims to transform the requirements gathered in the
SRS into a suitable form which permits further coding in a programming language.
It defines the overall software architecture together with high level and detailed design. All this work is documented
as a Software Design Document (SDD).
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
3. Implementation and unit testing: During this phase, design is implemented. If the
SDD is complete, the implementation or coding phase proceeds smoothly, because all the information
needed by software developers is contained in the SDD. During testing, the code is thoroughly
examined and modified. Small modules are tested in isolation initially. After that these modules are
tested by writing some overhead code to check the interaction between these modules and the flow of
intermediate output.
4. Integration and System Testing: This phase is highly crucial as the quality of the end
product is determined by the effectiveness of the testing carried out. The better output will lead to
satisfied customers, lower maintenance costs, and accurate results. Unit testing determines the
efficiency of individual modules. However, in this phase, the modules are tested for their interactions
with each other and with the system.
• This model is simple to implement also the number of resources that are required for it is minimal.
• The requirements are simple and explicitly declared; they remain unchanged during the entire
project development.
• The start and end points for each phase is fixed, which makes it easy to cover progress.
• The release date for the complete product, as well as its final cost, can be determined
before development.
• It gives easy to control and clarity for the customer due to a strict reporting system.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
• In this model, the risk factor is higher, so this model is not suitable for more significant and
complex projects.
• This model cannot accept the changes in requirements during development.
• It becomes tough to go back to the phase. For example, if the application has now shifted to the
coding phase, and there is a change in requirement, It becomes tough to go back and change it.
• Since the testing done at a later stage, it does not allow identifying the challenges and risks in
the earlier phase, so the risk reduction strategy is difficult to prepare.
Conclusion:
Waterfall is a plan-driven methodology and hence, the whole project strictly follows a clear plan, which
requires extensive planning upfront. That allows an estimation of costs and timeline which can be
discussed with the customer in advance. The existence of an elaborated plan and clear documentation also
results in a more secure project as everyone exactly knows what to do and new members can easily join the
team.
• Prototyping Model
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
In this phase, an actual prototype is designed based on the information gathered from quick design. It is
a small working model of the required system.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
In this method, a developed prototype will be discarded and will not be a part of the ultimately accepted
prototype. This technique is useful for exploring ideas and getting instant feedback for customer
requirements.
Evolutionary Prototyping
Here, the prototype developed is incrementally refined based on customer's feedback until it is finally
accepted. It helps you to save time as well as effort. That's because developing a prototype from scratch for
every interaction of the process can sometimes be very frustrating.
This model is helpful for a project which uses a new technology that is not well understood. It is also used
for a complex project where every functionality must be checked once. It is helpful when the requirement
is not stable or not understood clearly at the initial stage.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Incremental Prototyping
In incremental Prototyping, the final product is decimated into different small prototypes and developed
individually. Eventually, the different prototypes are merged into a single product. This method is helpful
to reduce the feedback time between the user and the application development team.
Extreme Prototyping
Extreme prototyping method is mostly used for web development. It is consists of three sequential phases.
• Basic prototype with the entire existing page is present in the HTML format.
• You can simulate data process using a prototype services layer.
• The services are implemented and integrated into the final prototype.
• Users are actively involved in development. Therefore, errors can be detected in the initial stage of
the software development process.
• Missing functionality can be identified, which helps to reduce the risk of failure as Prototyping is
also considered as a risk reduction activity.
• Helps team member to communicate effectively
• Customer satisfaction exists because the customer can feel the product at a very early stage.
• There will be hardly any chance of software rejection.
• Quicker user feedback helps you to achieve better software development solutions.
• Allows the client to compare if the software code matches the software specification.
• It helps you to find out the missing functionality in the system.
• It also identifies the complex or difficult functions.
• Encourages innovation and flexible designing.
• It is a straightforward model, so it is easy to understand.
• No need for specialized experts to build the model
• The prototype serves as a basis for deriving a system specification.
• The prototype helps to gain a better understanding of the customer's needs.
• Prototypes can be changed and even discarded.
• A prototype also serves as the basis for operational specifications.
• Prototypes may offer early training for future users of the software system.
Chandigarh School of Business
A
Jhanjeri, Mohali-140307
Department of Computer Applications
• It is very difficult for software developers to accommodate all the changes demanded by the
clients.
• After seeing an early prototype model, the customers may think that the actual product will
be delivered to him soon.
• The client may lose interest in the final product when he or she is not happy with the initial
prototype.
• Developers who want to build prototypes quickly may end up building substandard development
solutions.
Conclusion:
The prototype model is a trial and error method which has its advantages and disadvantages. It is
particularly useful when the client does not have clarity on what all features, they need in the product.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Spiral model
The spiral model, initially proposed by Boehm, is an evolutionary software process model that couples the
iterative feature of prototyping with the controlled and systematic aspects of the linear sequential model. It
implements the potential for rapid development of new versions of the software. Using the spiral model,
the software is developed in a series of incremental releases. During the early iterations, the additional
release may be a paper model or prototype. During later iterations, more and more complete versions of the
engineered system are produced.
• Objective setting: Each cycle in the spiral starts with the identification of purpose for that cycle,
the various alternatives that are possible for achieving the targets, and the constraints that exists.
• Risk Assessment and reduction: The next phase in the cycle is to calculate these various
alternatives based on the goals and constraints. The focus of evaluation in this stage is located
on the risk perception for the project.
• Development and validation: The next phase is to develop strategies that resolve uncertainties
and risks. This process may include activities such as benchmarking, simulation, and prototyping.
• Planning: Finally, the next step is planned. The project is reviewed, and a choice made whether to
continue with a further period of the spiral. If it is determined to keep, plans are drawn up for the
next step of the project. The development phase depends on the remaining risks.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
For example, if performance or user-interface risks are treated more essential than the program
development risks, the next phase may be an evolutionary development that includes developing a more
detailed prototype for solving the risks.
The risk-driven feature of the spiral model allows it to accommodate any mixture of a specification-
oriented, prototype-oriented, simulation-oriented, or another type of approach. An essential element of the
model is that each period of the spiral is completed by a review that includes all the products developed
during that cycle, including plans for the next cycle. The spiral model works for development as well as
enhancement projects.
Advantages
Disadvantages
Conclusion:
Each spiral can be termed as a loop and each loop is a separate development process in a spiral model. The
four activities (Planning, Risk analysis, engineering and evaluation) form the intermediary phases of a
spiral model and is repeated again for each loop.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 11
Aim: Explain with reason which model is best suited for the
product.
Prototyping Model
The Prototyping Model is one of the most popularly used Software Development Life Cycle Models
(SDLC models).This model is used when the customers do not know the exact project requirements
beforehand. In this model, a prototype of the end product is first developed, tested and refined as per
customer feedback repeatedly till a final acceptable prototype is achieved which forms the basis for
developing the final product.
In this process model, the system is partially implemented before or during the analysis phase thereby
giving the customers an opportunity to see the product early in the life cycle. The process starts by
interviewing the customers and developing the incomplete high-level paper model. This document is used
to build the initial prototype supporting only the basic functionality as desired by the customer. Once the
customer figures out the problems, the prototype is further refined to eliminate them. The process
continues until the user approves the prototype and finds the working model to be satisfactory.
B) Evolutionary Prototyping –
In this method, the prototype developed initially is incrementally refined on the basis of customer feedback
till it finally gets accepted. In comparison to Rapid Throwaway Prototyping, it offers a better approach
which saves time as well as effort. This is because developing a prototype from scratch for every iteration
of the process can sometimes be very frustrating for the developers.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
C) Incremental Prototyping – In this type of incremental Prototyping, the final expected product
is broken into different small pieces of prototypes and being developed individually. In the end, when all
individual pieces are properly developed, then the different prototypes are collectively merged into a
single final product in their predefined order. It’s a very efficient approach which reduces the complexity
of the development process, where the goal is divided into sub-parts and each sub-part is developed
individually. The time interval between the project begin and final delivery is substantially reduced
because all parts of the system are prototyped and tested simultaneously. Of course, there might be the
possibility that the pieces just not fit together due to some lack ness in the development phase – this can
only be fixed by careful and complete plotting of the entire system before prototyping starts.
D) Extreme Prototyping – This method is mainly used for web development. It is consists of
three sequential independent phases:
D.1) In this phase a basic prototype with all the existing static pages are presented in the HTML
format.
D.2) In the 2nd phase, Functional screens are made with a simulate data process using a
prototype services layer.
D.3) This is the final step where all the services are implemented and associated with the final
prototype.
This Extreme Prototyping method makes the project cycling and delivery robust and fast, and keeps the
entire developer team focus centralized on products deliveries rather than discovering all possible needs
and specifications and adding unnecessitated features.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Advantages –
• The customers get to see the partial product early in the life cycle. This ensures a greater level of
customer satisfaction and comfort.
• New requirements can be easily accommodated as there is scope for refinement.
• Missing functionalities can be easily figured out.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
• Errors can be detected much earlier thereby saving a lot of effort and cost, besides enhancing
the quality of the software.
• The developed prototype can be reused by the developer for more complicated projects in
the future.
• Flexibility in design.
Disadvantages –
• Costly w.r.t time as well as money.
• There may be too much variation in requirements each time the prototype is evaluated by the
customer.
• Poor Documentation due to continuously changing customer requirements.
• It is very difficult for developers to accommodate all the changes demanded by the customer.
• There is uncertainty in determining the number of iterations that would be required before
the prototype is finally accepted by the customer.
• After seeing an early prototype, the customers sometimes demand the actual product to be
delivered soon.
• Developers in a hurry to build prototypes may end up with sub-optimal solutions.
• The customer might lose interest in the product if he/she is not satisfied with the initial prototype .
Use –
The Prototyping Model should be used when the requirements of the product are not clearly understood or
are unstable. It can also be used if requirements are changing quickly. This model can be successfully used
for developing user interfaces, high technology software-intensive systems, and systems with complex
algorithms and interfaces. It is also a very good choice to demonstrate the technical feasibility of the
product.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
EXPERIMENT 12
Aim: Develop a working protocol of any of two problem.
How to Develop a Protocol or Procedures
Protocols and procedures are the specific way that a policy, rule or principle is carried out. It can often be
thought of as a set of instructions. Procedures can help small businesses to function productively by
ensuring that everyone executes tasks in the same way. It can be beneficial for organizations to review
their protocols and procedures on an ensure that they are up to date and reflect current business objectives.
Developing protocols and procedures is a matter of understanding the company's direction and goals.
1. Identify the policy or rule that needs a procedure attached to it. Clearly understand the goal of the
policy, such as if it is solving a problem, increasing productivity, ensuring quality of a product or service,
or if it is preventing a potential conflict. Consider similar protocols that have been put in place in the past
and determine if they can be used as models for this particular issue.
2. Determine if your management or staff needs to acquire any additional skills or equipment to
complete the procedure. For example, the procedure may involve scanning documents for electronic files
so that you are able to do away with paper files. Therefore you may need to purchase a scanner and then
train particular staff members on its operation methods. Additionally, you may need a companywide
document distributed explaining how employees are now able to access the electronic files.
3. Document the procedure in a step-by-step format. Make sure the instructions are clear and easily
understood by the various people who will need to follow the protocol. Use layman's terms whenever
possible to eliminate any potential confusion.
4. Test the protocol out. Distribute the instructions to a test group of three to five people and have
them put the procedure through a trial run. Ask them to document any problems that they encounter while
executing the protocol. Have them make suggestions on ways to improve the instructions or methods.
4 Review the test group's findings and notice any problems or challenges with the procedure. For example,
the test group may have noticed that gridlock will be created if your company purchases only one
scanner since numerous people will be using it. Amend the protocol as necessary.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
6. Finalize the protocol and submit it to management for approval. Gather feedback from your
supervisors and make any needed changes.
7. Create a clean final document that outlines the protocol. Distribute the document to the staff, or to
the particular people whom it affects. Follow up with the employees to make sure that the instructions are
understandable.
Planning
Change management planning usually involves preparing a schedule and a budget. For example, if you are
rolling out new quality control procedures for your small business, prepare a schedule for the software
implementation and the training and a budget for the related costs. Your budget should factor in the lost
productivity of employees affected by the transition from the old to the new procedures. Consider doing
the rollout in stages if you are managing the process for a medium or large business. For example, you
could implement the procedures in a small department, resolve any implementation issues and then roll
them out to other departments.
Communication
Successful change implementation requires a good communication strategy, which starts with an
explanation of the rationale for the new procedures. You should expect some resistance to change. Talk to
the most vocal resisters in one-on-one settings and listen to their concerns because some of them may have
constructive ideas on how to increase the chances of success in implementing these new procedures. Some
of the resistance may be due to bad experiences with prior procedural changes. Explain how these new
procedures can bridge the gap between the old way of doing things today to deal with changing business
realities, suggests MIT lecturer Jonathan Byrnes in a July 2005 Harvard Business School Working
Knowledge article.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Training
New procedures mean a new way of doing things. To minimize confusion and errors, train your employees
in the new procedures. The training documents should include description of the new procedures and
instructions on how to transition from the old procedures. If you are managing the rollout in a large
company, train the key business unit managers, who can then train their team members. The training could
also help mobilize support in the organization, suggests Harvard professor Michael A. Roberto and
researcher Lynne
C. Levesque in School Working Knowledge article.
Monitoring
Monitor how employees are using the new procedures and adjust them if necessary. Monitoring may
involve comparing financial and quality metrics before and after the rollout of the new procedures. It may
also involve actively soliciting feedback from employees and other affected stakeholders on how you could
improve these procedures.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Experiment 13
Aim:- Use LOC, FP and Cyclamate Complexity Metric of
above-mentioned problem
Use of LOC
LINES OF CODE
Lines of code (LOC) specifically include all lines containing program headers,
declarations, and executable and non-executable codes in a software program. Source
LOC (SLOC) are software metrics that are used to measure the size of a software
program by just counting the number of lines in the source code of the program. SLOC
are used to predict (approximate) the efforts required to write the code and are also used
to estimate the maintainability hours after the code is written.
PLOC is a count of lines in the text of the physical source code including comment lines,
declarations, and blank lines.
Chandigarh School of Business Jhanjeri, Mohali-140307
Department of Computer Applications
LLOC is a count of lines of only the executable “statements.” Lines of the comments,
declarations, and blank lines are not counted for this purpose. This definition varies with
computer language because the meaning of the “executable statements” varies across
computer language. LLOC is a widely used concept for various LOC estimations.
CLOC is a count of lines consisting of only the comments in the source code. Codes
written without any comments are considered as poor code. Good codes tend to
have appropriate comments.
RLOC is the count of lines reused in the particular code, which will not be counted for
calculating the efforts. People encouraged writing and using the reusable code, which
saves lot of efforts during the development process.
POINTS TO PONDER
PLOC is a count of lines in the text of the physical source code including comment lines,
declarations, and blank lines. LLOC is a count of lines of the only executable
“statements”. Lines of the comments, declarations, and blank lines are not counted for
this purpose.
6)
FORTRAN and Assembler are line-oriented languages in which the LOC concepts are
used effectively.
Various widely used LOC measurements along with meaning are given in Table 10.1.
Measurement Meaning
KLOC 1000 Lines Of Code
KDLOC 1000 Delivered Lines Of Code
KSLOC 1000 Source Lines Of Code
MLOC 1,000,000,000 Lines Of Code
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
1. Easy to learn
2. Easy to measure (scope of automated counting)
3. Easy to report and check
4. Complex formulas not used
5. Repeatability is possible
6. Measurement easily automatable
Since it is easy to calculate, easy to measure and easy to report (refer Figure 10.2), even
junior people can use LOC for estimation purposes.
3. Skilled coders can develop the same code with less lines (as per LOC, they
are considered as less productive, which is not correct).
4. Developer who produce more lines does not mean productive.
5. Complexity of the code is not taken into the consideration (complex code may
be written in few lines but may take longer time to code).
6. LOC is non-comparable across languages (Java program LOC is not
comparable with C language LOC).
7. Estimates based on LOC can adversely go wrong because LOC is not a
direct measure of functionality or productivity.
8. If LOC is used for measurements, people may add junk code j to increase LOC
which may not add any value to anybody.
9. Low utility as sizing measure.
Constructive cost model (COCOMO) and other series of models by Barry Boehm et al.
use SLOC as an input parameter. We will be discussing this model (COCOMO) in detail
in the later part of this chapter.
759
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Objectives of FPA
The basic and primary purpose of the functional point analysis is to measure and provide the
software application functional size to the client, customer, and the stakeholder on their request.
Further, it is used to measure the software project development along with its maintenance,
consistently throughout the project irrespective of the tools and the technologies.
1. FPs of an application is found out by counting the number and types of functions used in the
applications. Various functions used in an application can be put under five types, as shown in
Table:
Types of FP Attributes
2. FP characterizes the complexity of the software system and hence can be used to depict the
project time and the manpower requirement.
3. The effort required to develop the project depends on what the software does.
5. FP method is used for data processing systems, business systems like information systems.
6. The five parameters mentioned above are also known as information domain characteristics
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
7. All the parameters mentioned above are assigned some weights that have been experimentally
determined and are shown in Table
The functional complexities are multiplied with the corresponding weights against each function,
and the values are added up to determine the UFP (Unadjusted Function Point) of the subsystem.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Here that weighing factor will be simple, average, or complex for a measurement parameter type.
The Function Point (FP) is thus calculated with the following formula.
and ∑(fi) is the sum of all 14 questionnaires and show the complexity adjustment value/ factor-
CAF (where i ranges from 1 to 14). Usually, a student is provided with the value of ∑(fi)
1. Errors/FP
2. $/FP.
3. Defects/FP
4. Pages of documentation/FP
5. Errors/PM.
6. Productivity = FP/PM (effort is measured in person-months).
7. $/Page of Documentation.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
8. LOCs of an application can be estimated from FPs. That is, they are interconvertible. This
process is known as backfiring. For example, 1 FP is equal to about 100 lines of COBOL code.
9. FP metrics is used mostly for measuring the size of Management Information System (MIS)
software.
10. But the function points obtained above are unadjusted function points (UFPs). These (UFPs)
of a subsystem are further adjusted by considering some more General System Characteristics
(GSCs). It is a set of 14 GSCs that need to be considered. The procedure for adjusting UFPs is as
follows:
a. Degree of Influence (DI) for each of these 14 GSCs is assessed on a scale of 0 to 5. (b) If a
particular GSC has no influence, then its weight is taken as 0 and if it has a strong influence then its weight
is 5.
b. The score of all 14 GSCs is totaled to determine Total Degree of Influence (TDI).
c. Then Value Adjustment Factor (VAF) is computed from TDI by using the formula: VAF = (TDI *
0.01) + 0.65
Remember that the value of VAF lies within 0.65 to 1.35 because
Example: Compute the function point, productivity, documentation, cost per function for the
following data:
1.
2. Cost = $7744/ month
Solution:
Cyclomatic Complexity
M = E – N + 2P
where,
E = the number of edges in the control flow graph
N = the number of nodes in the control flow graph
P = the number of connected components
Steps that should be followed in calculating cyclomatic complexity and test cases design
are:
A = 10
IF B > C THEN A =
B
ELSE
A=C
ENDIF
Print A
Print B
Print C
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.
Use of Cyclomatic Complexity:
Determining the independent path executions thus proven to be very helpful for
Developers and Testers.
It can make sure that every path have been tested at least once.
Thus help to focus more on uncovered paths.
Code coverage can be improved.
Risk associated with program can be evaluated.
These metrics being used earlier in the program helps in reducing the risks.
Advantages of Cyclomatic Complexity:.
It can be used as a quality metric, gives relative complexity of various designs.
It is able to compute faster than the Halstead’s metrics.
It is used to measure the minimum effort and best areas of concentration for testing.
It is able to guide the testing process.
It is easy to apply.
Disadvantages of Cyclomatic Complexity:
It is the measure of the programs’s control complexity and not the data the data
complexity.
In this, nested conditional structures are harder to understand than non-nested
structures.
In case of simple comparisons and decision structures, it may give a misleading
figure.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Experiment 14
Aim:- Find Maintainability Index and Reusability Index of
above-mentioned problem
Maintainability Index
Maintainability Index is a software metric which measures how maintainable (easy to support and
change) the source code is. The maintainability index is calculated as a factored formula
consisting of SLOC (Source Lines Of Code), Cyclomatic Complexity and Halstead volume. It is
used in several automated software metric tools, including the Microsoft Visual Studio 2010
development environment, which uses a shifted scale (0 to 100) derivative.
Common formulas are:
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Where:
Reusability Index
In computer science and software engineering, reusability is the use of existing assets in some form
within the software product development process; these assets are products and by-products of the
software development life cycle and include code, software components, test suites, designs and
documentation. The opposite concept of reusability is leverage, which modifies existing assets as needed
to meet specific system requirements. Because reuse implies the creation of a separately
version of the assets[clarification needed], it is preferred over leverage.[1]
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Subroutines or functions are the simplest form of reuse. A chunk of code is regularly organized
using modules or namespaces into layers. Proponents claim that objects and software components offer a
more advanced form of reusability, although it has been tough to objectively measure and define levels or
scores of reusability.
The ability to reuse relies in an essential way on the ability to build larger things from smaller parts, and
being able to identify commonalities among those parts. Reusability is often a required characteristic
of platform software. Reusability brings several aspects to software development that do not need to be
considered when reusability is not required.
Reusability implies some explicit management
of build, packaging, distribution, installation, configuration, deployment, maintenance and upgrade issues.
If these issues are not considered, software may appear to be reusable from design point of view, but will
not be reused in practice.
Code rule
Code reuse, also called software reuse, is the use of existing software, or software knowledge, to
build new software,[1][2]: 7 following the reusability principles.
Code reuse may be achieved by different ways depending on a complexity of a
programming language chosen and range from a lower-level approaches like code copy-
pasting (e.g.
via snippets),[3] simple functions (procedures or subroutines) or a bunch of objects or functions
organized into modules (e.g. libraries)[4][2]: 7 or custom namespaces,
and packages, frameworks or software suites in higher-levels.
Types of reuse
Opportunistic – While getting ready to begin a project, the team realizes that there are existing components
that they can reuse.
Planned – A team strategically designs components so that they'll be reusable in future
projects. Reuse can be categorized further:
Internal reuse – A team reuses its own components. This may be a business decision, since the team may
want to control a component critical to the project.
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
External reuse – A team may choose to license a third-party component. Licensing a third-party component
typically costs the team 1 to 20 percent of what it would cost to develop
internally.[8] The team must also consider the time it takes to find, learn and integrate the component.
Concerning form or structure of reuse, code can be:[9]
Referenced – The client code contains a reference to reused code, and thus they have distinct life
cycles and can have distinct versions.
Forked – The client code contains a local or private copy of the reused code, and thus they share a
single life cycle and a single version.
Example:-
Software libraries
A very common example of code reuse is the technique of using a software library. Many
common operations, such as converting information among different well-known formats,
accessing external storage, interfacing with external programs, or manipulating information
(numbers, words, names, locations, dates, etc.) in common ways, are needed by many different
programs. Authors of new programs can use the code in a software library to perform these tasks,
instead of "re-inventing the wheel", by writing fully new code directly in a program to perform an
operation. Library implementations often have the benefit of being well-tested and covering
unusual or arcane cases. Disadvantages include the inability to tweak details which may affect
performance or the desired output, and the time and cost of acquiring, learning, and configuring
the library.[11
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Experiment 15
Aim:- Using any Case Tool find number of statements, depth and
complexity of the prototype
It's no secret code is a complicated thing to write, debug, and maintain which is
necessary for high software quality. Moreover, high code complexity brings with
it a higher level of code defects, making the code costlier to maintain.
So, by reducing code complexity, we can reduce the number of bugs and defects,
along with its lifetime cost. What exactly is complex code? How can we
objectively assess how complex a piece of code is, whether that's an entire
codebase or one small function?
In this article, I'm going to walk through three complexity metrics for assessing
code complexity. These are:
Cyclomatic complexity
Switch statement and logic condition complexity
Developer skill
I'll also go through some of the benefits of assessing and understanding code
complexity.
Cyclomatic Complexity
In 1976, Thomas McCabe Snr proposed a metric for calculating code
complexity, called Cyclomatic Complexity. It's defined as:
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
Said more straightforwardly, the fewer the paths through a piece of code, and the
less complex those paths are, the lower the Cyclomatic Complexity. As a result,
the code is less complicated. To demonstrate the metric, let's use three,
somewhat arbitrary, Go code examples.
Example One
1 func main() {
3 }
As there's only one path through the function, it has a Cyclomatic Complexity
score of 1, which we can find by running gocyclo on it.
Example Two
1 func main() {
In this example, we're retrieving the current year, month, and day. With this
information, we then check if the current date is the 10th of November 2018
with an if/else condition.
If it is, then the code prints "Happy Go day!" to the console. If it isn't, then it
prints "The current month is" and the name of the current month. The code
example is made more complicated if the condition is composed of three sub-
conditions. Given that, it has a higher complexity score of 4.
Example Three
1
2
func main() {
3
_, month, _ := time.Now().Date()
4
5
switch month {
6
case time.January:
7
fmt.Println("The current month is January.")
case time.February: 8
fmt.Println("The current month is February.")9
10
case time.March:
11
fmt.Println("The current month is March.")
12
case time.April:
13
fmt.Println("The current month is April.")
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
case time.May:
14
15
fmt.Println("The current month is May.")
16
default:
17
fmt.Println("The current month is unknown.")
18
}
}
Switch Statement and Logic Condition Complexity
The next assessor of code complexity is the switch statement and logic condition complexity.
In the code example below, I've taken the second Go example and split the compound if
condition into three nested conditions; one for each of the original conditions.
1
2
func main() {
3
year, month, day := time.Now().Date()
4
output := fmt.Sprintf("The current month is %s", month)
5
6
if month == time.November {
7
if day == 13 {
8
if year == 2018 {
9
output = fmt.Sprintf("Happy Go day!")
Chandigarh School of Business
Jhanjeri, Mohali-140307
Department of Computer Applications
}
10
11
}
12
}
13
14
fmt.Println(output)
}
The Benefits of Measuring Software Complexity
There are four core benefits of measuring code complexity, plus one extra.
Better Tests
By knowing how many independent paths there are through a piece of code, we know how
many paths there are to test.
I'm not advocating for 100% code coverage by the way—that's often a meaningless software
metric. However, I always advocate for as high a level of code coverage as is both practical
and possible.
So, by knowing how many code paths there are, we can know how many paths we have to test.
As a result, you have a measure of how many tests are required, at a minimum, to ensure that the
code's covered.
Jhanjeri, Mohali-
Department of Computer