Software Dec 21
Software Dec 21
Software Dec 21
Make
necessary assumptions.
DFD‟s can represent the system at any level of abstraction. DFD of “0” level views entire
software element as a single bubble with indication of only input and output data. Thus, “0”
level DFD is also called as Context diagram. Its symbols are shown in
What is a Data Dictionary ? Explain with an example.
This is another tool of requirement analysis which reduces complexity of DFD. A data
dictionary is a catalog of all elements of a system. DFD depicts flow of data whereas data
dictionary gives details of that information like attribute, type of attribute, size, names of
related data items, range of values, data structure definitions etc. The name specifies the
name of attribute whose value is collected. For example, fee deposit may be named as FD
and course opted may be named as CO.
Related data items captures details of related attributes. Range of values store total
possible values of that data. Data structure definition captures the physical structure of data
items.
Some of the symbols used in data dictionary are given below:
X= [a/b] x consists of either data element a or b
X=a x consists of an optional data element a
X=a+b x consists of data element a & b
X=y{a}z x consists of some occurrences of data elements a which are between y and z.
| Separator
** Comments
@ Identifier
( ) Options
Certification –
It is considered the final process of each increment which consists of usage modeling and
test planning, statistical training and certification process, etc.
While separate teams are allocated for different processes to ensure the development of
the highest quality software product.
Simulation
The expected duration of the project is calculated by using a different set of tasks in
simulation. The schedule is created on the basis of assumptions, so it can be used even if the
scope is changed or the tasks are not clear enough.
Resource-Levelling Heuristics
Cutting the delivery time or avoiding under or overutilization of resources by making
adjustments with the schedule or resources is called resource leveling heuristics. Dividing
the tasks as per the available resources, so that no resource is under or over-utilized. The
only demerit of this methodology is it may increase the project’s cost and time.
Task List
The task list is the simplest project scheduling technique of all the techniques available.
Documented in a spreadsheet or word processor is the list of all possible tasks involved in a
project. This method is simple and the most popular of all methods. It is very useful while
implementing small projects. But for large projects with numerous aspects to consider task
list is not a feasible method.
Gantt chart
For tracking progress and reporting purposes, the Gantt Chart is a visualization technique
used in project management. It is used by project managers most of the time to get an idea
about the average time needed to finish a project. A project schedule Gantt chart is a bar
chart that represents key activities in sequence on the left vs time. Each task is represented
by a bar that reflects the start and date of the activity, and therefore its duration.
Calendar
Many don’t consider scheduling tasks on a calendar for their project requirements – when
they should! Most of the calendars can be curated with names of their own. In this case, you
can create one calendar per project and scheduled events for that project. The calendar
shows a timeline for the entire project. The major advantage is that it can be subjected to
change as it is shareable. While it seems to be a great technique for tracking a project, it
does have certain limitations you cannot assign tasks to certain people and you cannot see
task dependencies.
Software project estimation is the process of estimating various resources required for the
completion of a project. Effective software project estimation is an important activity in any
software development project. Underestimating software project and under staffing it often
leads to low quality deliverables, and the project misses the target deadline leading to
customer dissatisfaction and loss of credibility to the company. On the other hand,
overstaffing a project without proper control will increase the cost of the project and reduce
the competitiveness of the company.
Software project estimation mainly encompasses the following steps:
Estimating the size of project. There are many procedures available for estimating the size
of a project which are based on quantitative approaches like estimating Lines of Code or
estimating the functionality requirements of the project called Function point.
Estimating total cost of the project depending on the above and other
resources. In a commercial and competitive environment, Software project
estimation is crucial for managerial decision making.
The following Table give the relationship between various management functions
and software metrics/indicators. Project estimation and tracking help to plan and predict
future projects and provide baseline support for project management and supports decision
making.
Controlling ---Size metrics and schedule metrics help the manager to keep control of the
project during execution
Monitoring/improving---- Metrics are used to monitor progress of the project and wherever
possible sufficient resources are allocated to improve.
Explain different techniques for Requirements Gathering.
The requirements gathering is an art. The person who gathers requirements should
have knowledge of what and when to gather information and by what resources. The
requirements are gathered regarding organisation, which include information
regarding its policies, objectives, and organisation structure, regarding user staff. It
includes the information regarding job function and their personal details, regarding
the functions of the organisation including information about work flow, work
schedules and working procedure.
The following four tools are primarily used for information gathering:
2. On site observation: In case of real life systems, the actual site visit is performed
to get a close look of system. It helps the analyst to detect the problems of existing
system.
Java supports mobile application development using its J2ME. J2ME stands for Java 2
Platform, Micro Edition. J2ME provides an environment under which application
development can be done for mobile phone, personal digital assistants and other
embedded devices. As like any other Java platform, J2ME includes API’s
(Application Programming Interface) and Java Virtual Machines. It includes a range
of user interfaces, provides security and supports a large number of network protocols.
J2ME also supports the concept of write once, run any where concept. Initially, an
application can be developed using J2ME targeting a specific type of devices. Then,
the same application can be used for different types of devices. Also, it is possible to
use the native capabilities of these devices. J2ME is one of the popular platforms that
is being used across the world for a number of mobile devices, embedded devices etc.
The following are different steps in the process of connecting MIDlet to a servlet:
Start Ktoolbar. This is part of J2ME wireless toolkit.
Open the project1.
Write the code for the MIDlet (let it be countmidlet.java) that connects to
counter servlet.
The screen of countmidlet.java (after executing it) consists of two commands
namely Exit and Connect. Clicking on Connect will lead to the invocation of
connect( ) method that will establish a network connection. It will also transport
the result.
The countmidlet.java should be saved to apps/project1/src directory under
J2ME wireless toolkit directory.
Now, J2ME wireless toolkit should know that a new MIDlet is added to it. This
can be done by going to Settings MIDletsAdd. Enter countmidlet for both
the MIDlet name and class name. Click on OK.
Go to Settings User Defined. Add the property name as countmidlet.URL.
This URL will invoke counter servlet.
‘‘Spiral Model combines the strength of various other Software Development models.’’
Justify the statement. Also explain the primary activities in this model. For what kind of
projects can we use this model ?
This model can be considered as the model, which combines the strengths of various other
models. Conventional software development processes do not take uncertainties into
account. Important software projects have failed because of unforeseen risks. The other
models view the software process as a linear activity whereas this model considers it as a
spiral process. This is made by representing the iterative development cycle as an expanding
spiral.
The following are the primary activities in this model:
Finalising Objective: The objectives are set for the particular phase of the project.
Risk Analysis: The risks are identified to the extent possible. They are analysed and
necessary steps are taken.
Development: Based on the risks that are identified, an SDLC model is selected and is
followed.
Planning: At this point, the work done till this time is reviewed. Based on the review, a
decision regarding whether to go through the loop of spiral again or not will be decided. If
there is need to go, then planning is done accordingly.
Phase
Activities performed Deliverables / Output
Name
Risk Requirements are studied and brain storming sessions are Document which highlights all the risks
Analysis done to identify the potential risks and its mitigation plans.
Engineering Actual development and testing if the software takes place Code
in this phase Test cases and test results
Test summary report and defect report.
Evaluation Customers evaluate the software and provide their Features implemented document
feedback and approval
The Spiral model is mainly used for large projects. It allows development teams to
include user feedback early on and create a highly customized product. Another
advantage of this SDLC model is how it handles risk management. Each iteration is
started after a serious analysis of potential risks and thinking through how to duck or
decrease them.
In a modular design, explain the functionality of Coupling and Cohesion. Write the
disadvantages of low cohesion and high coupling.
Coupling
The types of coupling from best (lowest level of coupling) to worst (high level of coupling)
are described below:
Data coupling: Modules interact through parameters. Module X passes parameter A to
module Y
Stamp coupling: Modules shares composite data structure.
Control coupling: One module control logic flow of another module. For example, passing
a flag to another module which determines the sequence of action to be performed in the
other module depending on the value of flag such as true or false.
External coupling: Modules shares external data format. Mostly used in communication
protocols and device interfaces
Common coupling: Modules shares the same global data.
Content coupling: One module modifies the data of another module.
With the help of a suitable example program, explain the ‘‘Boundary Value Analysis’’ testing
strategy by deriving boundary conditions
Example 1: Boundary Value Analysis for the Triangle Program Consider a simple program to
classify a triangle. Its input consists of three positive integers (say x, y, z) and the data types
for input parameters ensures that these will be integers greater than zero and less than or
equal to 100. The three values are interpreted as representing the lengths of the sides of a
triangle. The program then prints a message to the standard output that states whether the
triangle, if it can be formed, is scalene, isosceles, equilateral, or right-angled.
Solution: Following possible boundary conditions are formed:
1. Given sides (A; B; C) for a scalene triangle, the sum of any two sides is greater than the
third and so, we have boundary conditions A + B > C, B + C > A and A + C > B.
2. Given sides (A; B; C) for an isosceles triangle two sides must be equal and so we have
boundary conditions A = B, B = C or A = C.
3. Continuing in the same way for an equilateral triangle the sides must all be of equal
length and we have only one boundary where A = B = C.
4. For right-angled triangles, we must have A 2+B2 = C 2