Professional Documents
Culture Documents
SDM QB Answers Unit 1,2
SDM QB Answers Unit 1,2
1.The software development process is a complex and iterative process that consists of
multiple phases. The phases may vary depending on the type of software being developed,
but generally,
there are five phases in the software development process:
Requirements Gathering: In this phase, the software development team gathers and
analyzes the requirements for the software. The team works with the client or end-users to
determine their needs and expectations for the software.
Design: In this phase, the software architecture is designed. The software development
team
creates a high-level design that shows how the software will be structured, what its
components will be, and how they will interact with each other.
Implementation: In this phase, the software development team writes code and develops
thesoftware. The team follows the design plan and writes code that meets the requirements
set in the previous phases.
Testing: In this phase, the software is tested to ensure that it meets the requirements and
specifications. The software is tested at different levels, from unit testing to system testing.
Maintenance: In this phase, the software is maintained and updated to meet changing
needs
or to fix bugs or errors that are discovered over time.
For railway reservation software, the software development team can use the Waterfall
model, which is a linear sequential approach to software development. The Waterfall model
consists of the following phases: Requirements, Design, Implementation, Testing, and
Maintenance. This model is well-suited for railway reservation software development
because the requirements are well-defined, and the software development process is a
linear sequence.
In conclusion, the software development process is an essential part of developing software,
and it involves multiple phases. The choice of software life cycle model depends on the type
of software being developed. For railway reservation software, the Waterfall model is a
suitable option.
PART C 3
Explain the benefits and concepts of use case and use case model and analyze the relating
use cases have in ATM system
PART C 6
There is a class called Course, which had a method that creates
Section objects.
Modify the two classes so that (a) Course class maintains the list
of all sections. (b) Section stores the capacity and the number of
students enrolled in the class. (c) Course has a search facility that
returns a list of courses that are not full.
Class Course {
private ArrayList<Section> sections;
public Course() {
this.sections = new ArrayList<Section>();
}
return notFullSections;
}
}
Class Section {
private int capacity;
private int enrolledStudents;
PART C 8
In the case of library management system, the system displays
the transaction details with each book. Modify this so that there is
only one display of transactions at the end of the process.
To modify the library management system to display only one transaction at the end of the
process, the system would need to be updated to store each transaction in a single data
structure. This data structure would need to contain the details of each transaction and be
updated as new transactions occur. At the end of the process, the system would then iterate
through the data structure and display all the transaction details at once.
PART B 1
Identify the players who would have a stakeholder in software
development process. What are the concerns of each? How
would they benefit from the object-oriented model?
1. End Users: End users have a stake in software development processes as they are the
ones who will be using the software. Their concerns are that the software meets their needs,
is easy to use, and provides value. They would benefit from an object-oriented model
because it allows for greater flexibility and customizability to meet their needs.
4. Testers: Testers have a stake in software development processes as they are responsible
for ensuring that the code works as expected and does not contain any bugs or flaws. Their
main concern is that the software is free of defects and performs as expected. They would
benefit from an object-oriented model because it allows for easier testing of individual
components of the software.
PART B 2
Consider an application that you are familiar with, such as a
university system. Divide the entities of this application into
groups, thus identifying the classes.
Classes:
1. Student:
- Personal Information (Name, Address, Phone, etc.)
- Course Selection
- Financial Aid
- Progress Reports
- Grades
2. Faculty:
- Personal Information (Name, Address, Phone, etc.)
- Course Assignment
- Class Schedules
- Grades
3. Administrator:
- User Accounts
- Student Records
- Faculty Records
- Course Catalog
- Financial Aid
4. Courses:
- Course Name
- Course Description
- Prerequisites
- Credits
- Faculty Assigned
5. Registration:
- Student Enrollment
- Course Selection
- Payment
- Academic Records
6. Financial Aid:
- Eligibility Requirements
- Application Process
- Awards
- Grants
- Loans
7. Library:
- Books
- Journals
- Magazines
- Reference Materials
- Archives
- Digital Media
8. Campus Services:
- Campus Security
- Food Services
- Student Activities
PART B 3
Think of some common businesses and the activities software
developers are involved in. What are the sets of processes they
would like to automate? Are there any that need software just for
one process?
Yes, there are processes that need software just for one process. For example, a company
may need software to automate its payroll process, or software to automate its
marketing campaigns.
PART B 4
Suppose all the code is given (corresponding to all of the classes)
into one single class. What happens to cohesion and coupling?
The cohesion and coupling of the code would both decrease. This is because the code would
be less organized and modular, making it harder to understand and maintain. As a result, it
would become less cohesive and more coupled, as the code would be more intertwined.
PART B 5
Differentiate object oriented methodology from structural
methodology.
PART B 6
The Unified Process (UP) is an iterative and incremental software development process
framework based on unified methodology. It was created to provide organizations and
software development teams with a comprehensive process framework that is easy to
understand and apply. The UP provides a standard set of best practices and processes that
can be tailored to fit the specific needs of different projects and organizations. By providing
a consistent process, the UP helps reduce the amount of time and effort required to develop
software by eliminating the need to reinvent the wheel each time a new project is started.
Additionally, the UP helps to ensure the quality of the software developed by providing a set
of structured processes for the entire lifecycle of a project.
PART B 7
Unified Process model and COMET process model are used for
software development. Find out the common features of both the
model. Also, identify the differences.
Common Features:
1. Both the models are iterative and incremental in nature.
2. Both the models involve the creation of a software product that meets the requirements
of the customer.
3. Both the models involve the use of a team of professionals, such as developers, designers,
testers, and project managers.
4. Both the models involve the use of a formal set of processes and activities, such as
requirements gathering, design, coding, testing, and deployment.
Differences:
1. The Unified Process model is a more comprehensive and structured approach to software
development than the COMET process model.
2. The Unified Process model has a greater emphasis on the use of modern software
engineering techniques, such as object-oriented programming and the use of design
patterns.
3. The COMET process model has a more lightweight, agile approach to software
development, with less emphasis on the use of formal processes and activities.
4. The Unified Process model has a greater emphasis on the use of formal project
management techniques, such as project scheduling and risk management.
5. The COMET process model has a greater focus on the use of collaboration tools, such as
wikis and group messaging
Part b 8.
Draw and analyze the use cases in PAY ROLL system.
Use case 1:
Description: The Human Resources Manager enters employee information into the PAY ROLL
system. This includes employee name, address, salary, taxes, deductions, and other
necessary information.
Preconditions: The Human Resources Manager has entered all necessary employee
information.
Use case 2:
Description: The Payroll Clerk processes the employee payroll information, calculates taxes,
deductions, and other necessary information.
Postconditions: The payroll is processed and the employee’s salary, taxes, and deductions
are calculated.
Use case 3:
Description: The Payroll Clerk generates a paystub for the employee based on the
information entered in the PAY ROLL system.
Preconditions: The Payroll Clerk has all necessary employee information and the payroll has
been processed.
[Activity Diagram]
Start
|
|
|
V
Enter Password
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V
Password Incorrect?
/ \
/ \
/ \
Y N
| |
| |
| |
V V
Login Successful Attempt 2
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
V V
Password Incorrect? Password Incorrect?
/ \ / \
/ \ / \
Y N Y N
| | | |
| | | |
V V V V
Login Successful Attempt 3 Account Locked
|
|
|
V
End
PART B 10
Draw a use case diagram that represents the working of HTML5
video player in the browser
[1]: https://i.stack.imgur.com/4q3qF.png
PART B 11
[1]: https://i.stack.imgur.com/9fzYs.png
PART B 12
How do you indicate that a member is static in a UML Class
Diagram?
PART B 13
A manager at a small zoo instructs the zoo-keeper to ‘feed the
animals’. Explain how a proper completion of this task by the
zoo-keeper implies that the zoo operations are implicitly
employing the concepts of inheritance, polymorphism and
dynamic binding.
Inheritance: The zoo-keeper needs to understand the different types of animals in the zoo,
and the specific dietary needs of each type. This implies that the animals are organized into
classes of animal types, with each class inheriting the dietary needs of its parent class.
Polymorphism: Depending on the animal, the zoo-keeper will need to provide different
types of food. This implies that the zoo-keeper needs to account for the polymorphism of
different types of animals and the different types of food they require.
Dynamic Binding: The zoo-keeper also needs to understand the particular needs of each
individual animal, which implies that they are dynamically binding the dietary needs of each
animal to the specific animal in question.
UNIT 2
PART B
1.Differentiate static and dynamic models. What would be preferred
in order to make an effective design?
Static models are mathematical or physical models that are developed to describe a system
at a certain point in time. These models are used to describe the system’s structure and
behaviour, but they do not account for changes in the system over time. Dynamic models
are mathematical or physical models that are developed to describe a system over a period
of time. These models are used to describe the system’s structure and behaviour, and they
also account for changes in the system over time.
The preferred model for an effective design depends on the application. For example, static
models are often used for static systems such as bridges or buildings, where the structure
and behaviour of the system does not change over time. Dynamic models are often used for
dynamic systems such as weather systems or economic systems, where the structure and
behaviour of the system can change over time.
Object-oriented design (OOD) is the process of transforming the requirements and analysis
into a working software system. It involves designing the architecture and components of a
system, and developing the classes and objects needed to implement it. OOD helps to define
the interfaces and interactions between objects that will be used in the software system.
Both analysis and design go together in order to construct a software system. Analysis is
needed to understand the problem and define the objectives, while design is needed to
translate the analysis into a working software system. Analysis alone is not sufficient to
construct a software system since it does not provide the details of how the system should
be implemented. Similarly, design alone is not sufficient since it does not provide the
necessary understanding of the problem and objectives.
3.Draw the CRC Card template and with an example.
Class Name:
Responsibilities:
Collaborators:
Example
Responsibilities: Calculate total cost, add items to the cart, remove items from the cart,
display the list of items in the cart
_________________________
| |
| Use Case |
| Driven |
| Object-Oriented |
| Analysis |
| |
------------------------
|
|
|
|
|
V
--------------
| |
| Modeling |
| |
--------------
|
|
|
|
|
V
------------------------
| |
| Class, Sequence, & |
| Interaction Diagrams |
| |
------------------------
|
|
|
|
|
V
------------------------
| |
| Object Modeling |
| |
------------------------
|
|
|
|
|
V
------------------------
| |
| System Design & |
| Implementation |
| |
------------------------
1. Use Case Modeling: In the first step, use cases are identified which
describe the behavior of the system from the user's point of view.
2. Class, Sequence, and Interaction Diagrams: The use cases are then
used to create class, sequence, and interaction diagrams which help
to identify the objects and their behavior in the system.
3. Object Modeling: In this step, the objects are modeled and their
relationships are identified.
Aggregation is a special type of association in which one class is a part of another class. The
part class in an aggregation relationship is called the "child" class, while the class that
contains the part is called the "parent" class. In the class diagram, the aggregation
relationship is represented by a line connecting two classes, with an empty diamond at the
parent class end.
A real-world example of an aggregation relationship is a car and its parts. A car has many
parts, such as a steering wheel, engine, and wheels. The car is the parent class, while the
parts are the child classes.
Aggregation has several advantages compared to its counterpart, Composition. The main
advantage is that a child class in an aggregation relationship can be part of more than one
parent class. For example, a steering wheel can be part of multiple cars. This allows for the
reuse of parts between different parents. Additionally, an aggregation relationship is less
restrictive than a composition relationship, allowing the child class to exist without the
parent class.
Coupling is the degree to which two separate modules or components of a system are
connected. It is the measure of how dependent one module is on another. Coupling is
usually seen as a bad thing, as it reduces the flexibility of a system and makes it more
difficult to maintain.
Cohesion is the degree to which the elements of a module are related and work together
towards a common goal. It is the measure of how related the components are within a
module. Cohesion is usually seen as a good thing, as it increases the flexibility of a system
and makes it easier to maintain.
A good design will have low coupling and high cohesion. Low coupling between modules
allows for more flexibility and easier maintenance, while high cohesion within modules
allows for better organization and more efficient code.