Professional Documents
Culture Documents
CS-326 E-Manual 2
CS-326 E-Manual 2
E-MANUAL
PREPARED BY
This lab deals with the analysis and design of a software problem .the tool used in a lab is
rational rose .this tool is used for a object oriented design of a problem . We draw a uml
diagram in a rational rose which deals with the objects and classes in a system .The Unified
Modeling Language or UML is is a mostly graphical modeling language that is used to
express designs. It is a standardized language in which to specify the items and components
of a software system. It is important to understand that the UML describes a notation and not
a process. It does not put forth a single method or process of design, but rather is a
standardized tool that can be used in a design process.
The Unified Modeling Language (UML) is a standard language for specifying, visualizing,
constructing, and documenting the artifacts of software systems, as well as for business
modeling and other non-software systems. The UML represents a collection of best
engineering practices that have proven successful in the modeling of large and complex
systems. The UML is a very important part of developing objects oriented software and the
software development process.
The UML uses mostly graphical notations to express the design of software projects. Using
the UML helps project teams communicate, explore potential designs, and validate the
architectural design of the software.
Goals of UML
As the strategic value of software increases for many companies, the industry looks for
techniques to automate the production of software and to improve quality and reduce cost
and time-to-market. These techniques include component technology, visual programming,
patterns and frameworks. Businesses also seek techniques to manage the complexity of
CS326: Software Engineering 1
systems as they increase in scope and scale. In particular, they recognize the need to solve
recurring architectural problems, such as physical distribution, concurrency, replication,
security, load balancing and fault tolerance.
List of Practical’s
(As per the syllabus prescribed by MPUAT University)
Choose any one project and do the following exercises for that project
The problem statement is the initial starting point for a project. It is basically a one to three
page statement that everyone on the project agrees with that describes what will be done at a
high level. The problem statement is intended for a broad audience and should be written in
non- technical terms. It helps the non-technical and technical personnel communicate by
providing a description of a problem. It doesn't describe the solution to the problem.
CS326: Software Engineering 2
The input to requirement engineering is the problem statement prepared by customer.
It may give an overview of the existing system along with broad expectations from the new
system.
The first phase of requirements engineering begins with requirements elicitation i.e. gathering
of information about requirements. Here, requirements are identified with the help of
customer and existing system processes. So from here begins the preparation of problem
statement.
So, basically a problem statement describes what needs to be done without describing how.
Conclusion: The problem statement was written successfully by following the steps
described above.
The SRS document itself states in precise and explicit language those functions and
capabilities a software system (i.e., a software application, an eCommerce Web site, and so
on) must provide, as well as states any required constraints by which the system must abide.
The SRS also functions as a blueprint for completing a project with as little cost growth as
possible. The SRS is often referred to as the "parent" document because all subsequent project
management documents, such as design specifications, statements of work, software
architecture specifications, testing and validation plans, and documentation plans, are related
to it.
It's important to note that an SRS contains functional and nonfunctional requirements only; it
doesn't offer design suggestions, possible solutions to technology or business issues, or any
other information other than what the development team understands the customer's system
requirements to be.
o It provides feedback to the customer. An SRS is the customer's assurance that the
development organization understands the issues or problems to be solved and the
software behavior necessary to address those problems. Therefore, the SRS should be
written in natural language (versus a formal language, explained later in this article), in
an unambiguous manner that may also include charts, tables, data flow diagrams,
decision tables, and so on.
o It decomposes the problem into component parts. The simple act of writing down
software requirements in a well-designed format organizes information, places borders
around the problem, solidifies ideas, and helps break down the problem into its
component parts in an orderly fashion.
o It serves as an input to the design specification. As mentioned previously, the SRS serves
as the parent document to subsequent documents, such as the software design
specification and statement of work. Therefore, the SRS must contain sufficient detail in
the functional system requirements so that a design solution can be devised.
o It serves as a product validation check. The SRS also serves as the parent document for
testing and validation strategies that will be applied to the requirements for verification.
The basic issues that the SRS shall address are the following:
An SRS should be
Correct
Unambiguous
Complete
Consistent
Ranked for importance and/or stability
Verifiable
Modifiable
Traceable
Correct - This is like motherhood and apple pie. Of course you want the specification to be
correct. No one writes a specification that they know is incorrect. We like to say - "Correct
and Ever Correcting." The discipline is keeping the specification up to date when you find
things that are not correct.
Complete - A simple judge of this is that is should be all that is needed by the software
designers to create the software.
Consistent - The SRS should be consistent within itself and consistent to its reference
documents. If you call an input "Start and Stop" in one place, don't call it "Start/Stop" in
another.
Ranked for Importance - Very often a new system has requirements that are really
marketing wish lists. Some may not be achievable. It is useful provide this information in
the SRS.
Verifiable - Don't put in requirements like - "It should provide the user a fast response."
Another of my favorites is - "The system should never crash." Instead, provide a quantitative
requirement like: "Every key stroke should provide a user response within 100 milliseconds."
Modifiable - Having the same requirement in more than one place may not be wrong - but
tends to make the document not maintainable.
Introduction
Purpose
Document conventions
Intended audience
Additional information
Contact information/SRS team members
References
Overall Description
Product perspective
Product functions
User classes and characteristics
Operating environment
User environment
System Features
System feature A
Description and priority
Action/result
Functional requirements
System feature B
Other Requirements
Appendix A: Terminology/Glossary/Definitions
list Appendix B: To be determined
INTRODUCTION:
Hospital are the essential part of our lives, providing best medical facilities to people suffering from
various ailments, which may be due to change in climatic conditions, increased work-load,
emotional trauma stress etc. It is necessary for the hospitals to keep track of its day-to-day activities
& records of its patients, doctors, nurses, ward boys and other staff personals that keep the hospital
running smoothly & successfully. But keeping track of all the activities and their records on paper
is very cumbersome and error prone. It also is very inefficient and a time-consuming process
Observing the continuous increase in population and number of people visiting the hospital.
Recording and maintaining all these records is highly unreliable, inefficient and error-prone. It is
also not economically & technically feasible to maintain these records on paper. Thus keeping the
working of the manual system as the basis of our project. We have developed an automated version
of the manual system, named as “Hospital Management System”. The main aim of our project is to
provide a paper-less hospital up to 90%. It also aims at providing low-cost reliable automation of
the existing systems. The system also provides excellent security of data at every level of user-
system interaction and also provides robust & reliable storage and backup facilities.
The project “Hospital management system” is aimed to develop to maintain the day –to-day state of
admission/discharge of patients, list of doctors, reports generation, and etc.It is designed to achieve
the following objectives:
1. To computerize all details regarding patient details & hospital details.
2. Scheduling the appointment of patient with doctors to make it convenient for both.
3. Scheduling the services of specialized doctors and emergency properly so that facilities
provided by hospital are fully utilized in effective and efficient manner.
4. If the medical store issues medicines to patients, it should reduce the stock status of the
medical store and vice-versa. 5. It should be able to handle the test reports of patients
conducted in the pathology lab of the hospital.
6. The inventory should be updated automatically whenever a transaction is made.
7. The information of the patients should be kept up to date and there record should be kept
in the system for historical purposes.
Input:
Patient Information.
Medicine Details.
Bed Details.
Details of Doctors.
Payment Details.
Operations:
Administration
Login
Insert Patient, Medicine, Equipment and Staff Details.
Patient
Book appointments.
Check on Medicine.
Search Doctor/Disease.
Online pay.
Output
Booking Confirmation.
Scheduled Dates.
Constraints
All the patient must register themselves into the system.
Login information contains only customer id and password.
A customer can only view his/her appointment details.
A use case diagram at its simplest is a representation of a user‟s interaction with the system that
shows the relationship between the user and the different use cases in which the user is involved. A
use case diagram can identify the different types of users of a system and the different use cases and
will often be accompanied by other types of diagrams as well. Use case diagrams provide the
simplified and graphical representation of what the system must actually do. Due to their simplistic
nature, Use case diagrams can be a good communication tool for stakeholders. The drawings
attempt to mimic the real world and provide a view for the stakeholder to understand how the
system is going to be designed. The purpose of use case diagrams is simply to provide the high
level view of the system and convey the requirements in layman's terms for the stakeholders.
A sequence diagram shows object interactions in time sequence. It depicts the objects and classes
involved in the scenario and the sequence of messages exchanged between the objects needed to
carry out the functionality of the scenario.
Sequence diagrams are typically associated with use case realizations in the Logical view of the
system under development. Sequence diagrams are sometimes called event diagrams or event
scenarios. A sequence diagram shows, as parallel vertical lines (lifelines), different processes or
objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them,
in the order in which they occur.
This allows the specification of simple runtime scenarios in a graphical manner. If the lifeline is
that of an object, it demonstrates a role. Leaving the instance name blank can represent anonymous
and unnamed instances. Messages written with horizontal arrows with the message name written
above them, display interaction. Solid arrow heads represent synchronous calls, open arrow heads
represent asynchronous messages, and dashed lines represent reply messages.
If a caller sends a synchronous message, it must wait until the message is done, such as invoking a
subroutine. If a caller sends an asynchronous message, it can continue processing and doesn‟t have
to wait for a response. Asynchronous calls are present in multithreaded applications, event driven
applications and in message-oriented middleware. Activation boxes, or method-call boxes, are
opaque rectangles drawn on top of lifelines to represent that processes are being performed in
response to the message. Object calling methods on themselves use messages and add new
activation boxes on top of any others to indicate a further level of processing.
CLASS NOTATION:
A class notation consists of three parts:
1). Class Name: The name of the class appears in first partition.
2). Class Attributes: - Attributes are shown in the second partition. - The attribute type is shown
after the colon. - Attributes map onto member variables (data members in code).
3). Class Operations (methods): - Operations are shown in the third partition. They are services the
class provides. - The return type of a method is shown after the colon at the end of the method
signature. - The return type of method parameters are shown after the colon following the
parameter name. - Operations map onto class methods in code.
CLASS RELATIONSHIPS
1). Inheritance (or Generalization): Represents an IS-A relationship.
2). Simple Association: A structural link between two peer classes.
3). Aggregation: A special type of association. It represents a “part of” relationship.
4). Composition: A special type of aggregation where parts are destroyed when the whole is
destroyed. 5). Dependency: Exists between two classes if changes to the definition of one may
cause changes to the other (but not the other way around).
2. Process: any process that changes the data, producing an output. It might perform computations,
or sort data based on logic, or direct the data flow based on business rules.
3. Data Store: files or repositories that hold information for later use, such as a database table or a
membership form. Each data store receives a simple label.
4. Data flow: the route that data takes between the external entities, processes and data stores. It
portrays the interface between the other components and is shown with arrows, typically labeled
with a short data name
DFD Level 0: