[go: up one dir, main page]

0% found this document useful (0 votes)
807 views66 pages

SE Lab Manual 3rd Sem

This document contains information about the Software Engineering lab course for second year computer engineering students. It includes the lab code, branch, and year. It lists experiments that will be conducted in the lab as per the RTU syllabus, including introductions to software requirements specification, modeling, design, testing, and a case study project. It provides instructions for students on lab protocol and expectations. The document outlines the program educational objectives of preparing students for advanced studies, providing a foundation in computer science fundamentals and skills, training students to solve problems, fostering professionalism, and providing an environment for lifelong learning.

Uploaded by

kingsprodmgmt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
807 views66 pages

SE Lab Manual 3rd Sem

This document contains information about the Software Engineering lab course for second year computer engineering students. It includes the lab code, branch, and year. It lists experiments that will be conducted in the lab as per the RTU syllabus, including introductions to software requirements specification, modeling, design, testing, and a case study project. It provides instructions for students on lab protocol and expectations. The document outlines the program educational objectives of preparing students for advanced studies, providing a foundation in computer science fundamentals and skills, training students to solve problems, fostering professionalism, and providing an environment for lifelong learning.

Uploaded by

kingsprodmgmt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 66

LAB MANUAL

Lab Name : Software Engineering Lab


Lab Code : 3CS4-23
Branch : Computer Engineering
Year : II Year

Arya College OF Engineering & Research Centre

Department of Computer Science & Engineering

(Rajasthan Technical University, KOTA)


INDEX

S. NO CONTENTS Page
1 Syllabus

2 Do’s and Don’t’

3 Instructions to the students

4 Lab PEO

5 LAB PLAN

Experiment as per RTU Syllabus


Exp:-1 Introduction About SE Lab

Sample Viva Question

Exp:-2 Explain Project Planning and Management

Sample Viva Question

Exp:-3 Explain Software Requirement Specification (SRS)

Sample Viva Question

Exp:-4 Explain Software Modeling: ERD & DFD

Sample Viva Question

Exp:-5 Explain UML Diagrams

Sample Viva Question

Exp:-6 Introduction About Software Design

Sample Viva Question

Exp:-7 Introduction Software Testing

Sample Viva Question

Exp:-8 Case Study On Project


SYLLABUS
II Year-III Semester: B.Tech. Computer Science and Engineering
3CS4-23: Software Engineering
Credit-3 Max. Marks : 150 (IA:30,ETE:120)
3L+0T+0P End Term Exam: 3 Hours
SN Contents
1 Development of requirements specification, function oriented design using
SA/SD, object-oriented design using UML, test case design, implementation
using Java and testing. Use of appropriate CASE tools and other tools such as
configuration management tools, program analysis tools in the software life
cycle. 2 Develop.
2 Develop Software Requirements Specification (SRS) for a given problem in
IEEE template.
3 DevelopDFD model (level-0, level-1 DFD and Data dictionary) of the project.
4 Develop structured design for the DFD model developed.
5 Developed all Structure UML diagram of the given project.
6 Develop Behavior UML diagram of the given project
7 Manage file, using ProjectLibre project management software tool.
LIST OF PROJECTS:

1) Library Management System


2) Quiz System
3) Hotel Management
4) Students Marks Analyzing System
5) Online Ticket Reservation System
6) Payroll System
7) Stock Maintenance
8) Export System
9) Expert system to prescribe the medicines for the given symptoms
10) Platform assignment system for the trains in a railway station
11) Course Registration system

Exercises:

• Form groups of 2 students.


• Choose one of the projects from above list.
• Try to write (a hypothetical) project definition for it.
• Develop the software using software engineering methodology.
• Present it to the instructor/class.
Software Required:
Case Tools: Rational Suite, Win Runner , Empirix
Languages: C / C++ / JDK , JSDK
Front End: VB, VC++, .NET
Back End: Oracle, MS-Access, SQL
DO’s
1. Please switch off the Mobile/Cell phone before entering Lab.
2. Enter the Lab with complete source code and data.
3. Check whether all peripheral are available at your desktop before proceeding for program.
4. Intimate the lab In charge whenever you are incompatible in using the system or in case
software get corrupted/ infected by virus.
5. Arrange all the peripheral and seats before leaving the lab.
6. Properly shutdown the system before leaving the lab.
7. Keep the bag outside in the racks.
8. Enter the lab on time and leave at proper time.
9. Maintain the decorum of the lab.
10. Utilize lab hours in the corresponding experiment.
11. Get your Cd / Pen drive checked by lab in charge before using it in the lab.

Don’ts
1. No one is allowed to bring storage devices like Pan Drive /Floppy etc. in the lab.
2. Don’t mishandle the system.
3. Don’t leave the system on standing for long
4. Don’t bring any external material in the lab.
5. Don’t make noise in the lab.
6. Don’t bring the mobile in the lab. If extremely necessary then keep ringers off.
7. Don’t enter in the lab without permission of lab In charge.
8. Don’t litter in the lab.
9. Don’t delete or make any modification in system files.
10. Don’t carry any lab equipments outside the lab.
Instructions to the Students
General Instructions

 Maintain separate observation copy for each laboratory.


 Observations or readings should be taken only in the observation copy.
 Get the readings counter signed by the faculty after the completion of the experiment.
 Maintain Index column in the observation copy and get the signature of the faculty
before leaving the lab.
Before Entering the Lab


The previous experiment should have been written in the practical file, without which
the students will not be allowed to enter the lab.
 The students should have written the experiment in the observation copy that they are
supposed to perform in the lab.
 The experiment written in the observation copy should have aim, apparatus required,
circuit diagram/algorithm, blank observation table (if any), formula (if any),
programmed (if any), model graph (if any) and space for result.
When Working in the Lab

 Necessary equipments/apparatus should be taken only from the lab assistant by making
an issuing slip, which would contain name of the experiment, names of batch members
and apparatus or components required.
 Never switch on the power supply before getting the permission from the faculty.

Before Leaving the Lab


 The equipments/components should be returned back to the lab assistant in good
condition after the completion of the experiment.
 The students should get the signature from the faculty in the observation copy.
 They should also check whether their file is checked and counter signed in the index.
PROGRAM EDUCATION OBJECTIVES AND OUTCOMES
Subject Name/Code: SE Lab/3CS4-23
Class: B. Tech. II Yr III Sem. Computer Engineering L T P
0 0 2
External Marks: 20 Internal Marks: 30 Total Marks: 50
(1) Program Description: To offer high quality education in the field of Computer Science
Engineering and to prepare students abreast of latest global industrial and research requirements and
fulfill responsibility towards community.
(2) Program Education Objectives:
List of Program Educational Objectives (PEO)
Preparation:- To prepare to pursue advanced graduate studies in computing or
related disciplines and provide students broad-based education in core areas of

PEO-1 Computer Science, including theoretical foundations, algorithms and data structures,
and hardware, with an appropriate blend of theory and practice and to specialize in a
variety of areas of Computer Science through a selection of elective courses.
Core Competence:-To provide students with a solid foundation in engineering field

PEO-2 required to solve computing problems using various programming languages and
software’s, and students can solve problems through logical and analytical thinking.
Breathe:-To train students with good engineering breadth so as to comprehend,
PEO-3
analyze, design, and create novel products and solutions for the real life.
Professionalism:-To inculcate in students professional and ethical attitude, effective

PEO-4 communication skills, teamwork skills, multidisciplinary approach, and an ability to


relate engineering issues to broader social context.
Learning Environment:-To provide students with an academic environment aware

PEO-5 of excellence leadership and lifelong learning needed for successful professional
career through independent studies, thesis, internships etc.

Program Outcomes & it's mapping with PEO

List of Program Outcomes


Engineering Knowledge: Apply knowledge of mathematics and science, with
PO-1 fundamentals of Engineering to be able to solve complex engineering problems
related.
PO-2 Problem Analysis: Identify, Formulate, review research literature and analyze
complex engineering problems and reaching substantiated conclusions using first
principles of mathematics, natural sciences and engineering sciences.
Design/Development of solutions: Design solutions for complex engineering
PO-3 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.
Conduct Investigations of Complex problems: Use research–based knowledge and
PO-4 research methods including design of experiments, analysis and interpretation of data,
and synthesis of the information to provide valid conclusions.
Modern Tool Usage: Create, Select and apply appropriate techniques, resources and
PO-5 modern engineering and IT tools including prediction and modeling to complex
engineering activities with an understanding of the limitations.
The Engineer and Society: Apply Reasoning informed by the contextual knowledge
PO-6 to assess societal, health, safety, legal and cultural issues and the consequent
responsibilities relevant to the professional engineering practice.
Environment and Sustainability: Understand the impact of the professional
PO-7 engineering solutions in societal and environmental contexts and demonstrate the
knowledge of, and need for sustainable development.
PO-8 Ethics: Apply Ethical Principles and commit to professional ethics and
responsibilities and norms of the engineering practice.
PO-9 Individual and Team Work: Function effectively as an individual and as a member
or leader in diverse teams and in multidisciplinary Settings.
Communication: Communicate effectively on complex engineering activities with
PO-10 the engineering community and with society at large such as able to comprehend and
with write effective reports and design documentation, make effective presentations
and give and receive clear instructions.
Project Management and Finance: Demonstrate knowledge and understanding of
PO-11 the engineering management principles and apply these to one’s own work, as a
member and leader in a team, to manage projects and in multi disciplinary
environments.
Life-Long Learning: Recognize the need for and have the preparation and ability to
PO-12 engage in independent and life-long learning the broadest context of technological
change.

List of Program Specific Outcomes (PSO)


Knowledge Enhancement in Computing: The ability to interpret the foundation
and strategy of hardware and software of computer systems. Graduates can solve the
PSO-1 problems in the areas related to algorithms, multimedia, data analytics, cloud
computing, human computer interface, robotics, artificial intelligence and
networking for efficient design of computer systems.
Software Design and Development: The ability to understand the software
PSO-2 development lifecycle and methodologies of software systems. Graduate will learn
competent skills and knowledge of software design process. Graduate will be
acquaintance to practical proficiency with a broad area of programming concepts.
MAPPING OF PEO WITH PO & PSO
Program PROGRAM OUTCOME PSO
Education
PO- PO- PO- PSO- PSO-
Objectives PO-1 PO-2 PO-3 PO-4 PO-5 PO-6 PO-7 PO-8 PO-9
10 11 12 1 2
(PEO)
PEO-1 3 3 2 3 - - - 1 - - 1 2 3 2
PEO-2 3 3 3 3 3 - 1 - - - - 2 2 3
PEO-3 3 3 3 2 3 - - - - - - 3 3 2
PEO-4 - - - - - 2 2 3 3 3 3 3 1 2
PEO-5 - 1 2 1 - 3 2 2 3 2 3 3 2 3

Note: Correlation levels 1, 2 or 3 as defined below:


1: Slight (Low) 2: Moderate (Medium) 3: Substantial (High)

Course Outcomes:
Upon successful completion of this Network Programming Lab course Students should be
able to:

CO-1 To list the basic concepts used in computer graphics.


CO-2 To implement various algorithms to scan, convert the basic geometrical primitives,
transformations, Area filling, clipping.
CO-3 To describe the importance of viewing and projections.
CO-4 To define the fundamentals of animation, virtual reality and its related technologies.
Course Outcome to Program Outcomes Mapping:
PROGRAM OUTCOMES PSO’s
COURSE
PO- PO PO PO- PO PO- PO- PO PO- PO PO PO- PSO- PSO-
OUTCOMES
1 -2 -3 4 -5 6 7 -8 9 -10 -11 12 1 2
CO-1 3 2 - - - - - - - - - - - -
CO-2 2 - - 3 - - - - - - - - 3 2
CO-3 1 - - - - - - - - - - 2 - -
CO-4 1 2 - - - - - - - - - 3 2 3
Note: Correlation levels 1, 2 or 3 as defined below:
1: Slight (Low) 2: Moderate (Medium) 3: Substantial (High
Covered Beyond the Syllabus/Additional Contents:
With the topics in the syllabus the following topics will be covered in this subject which are important
for Network Programming Lab:
Exp: A practical Design UML Diagram Of Library Management System

Text Books /Reference Books:

BOOKS:-
Text books:-
1 .Software Engineering :- K.K. Aggarwal

2. Software Engineering :- Shalini Puri

Reference Books:-
1. Software Engineering:- Pressman

Practical 1
INTRODUCTION

Front End and Back End:


Front-end and back-end are generalized terms that refer to the initial and the end
stages of a process. The front-end is responsible for collecting input in various forms
from the user and processing it to conform to a specification the back-end can use. The
front-end is a kind of interface between the user and the back-end. In software
architecture there are many layers between the hardware and end-user. Each can be
spoken of as having a front- and back-end. The "front" is an abstraction, simplifying the
underlying component by providing a user-friendly interface.
The separation of software systems into "front-ends" and "back-ends" simplifies
development and separates maintenance.
Case Tool:
Computer-Aided Software Engineering (CASE), in the field of Software Engineering
is the scientific application of a set of tools and methods to a software system which is
meant to result in high-quality, defect-free, and maintainable software products. It also
refers to methods for the development of information systems together with automated
tools that can be used in the software development process. The CASE functions
include analysis, design, and programming. CASE tools automate methods for
designing, documenting, and producing structured computer code in the desired
programming language.
Computer-aided software engineering (CASE) is software to support software
development and evolution processes.
Two key ideas of Computer-aided Software System Engineering (CASE) are:
 the harboring of computer assistance in software development and or software
maintenance processes, and
 An engineering approach to the software development and or maintenance.
3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-1

Objective:- Introduction about SE Lab with assign project.

S.No. Viva Questions (to be answered in the Lab file)


1. What is SDLC?.

2. What is object oriented design?

3. What is System?

4. What is system Analysis?

5. What is Software Engineering?

6. What is the need of documentation in software development?

7. Explain why Accuracy is an important attribute for a Data Dictionary.


What is the Prototyping? How is it useful for the development for
8.
requirement specification?
9. Discuss Do’s and Don’ts of good programming style.

10. Differentiate B/w Software designing and Coding.

PRACTICAL 2

PROJECT PLANNING AND MANAGEMENT

Objectives
• Gain understanding of project management.
• Learn how to prepare project plans.
• Learn about project risks.
Project management is the process of planning and controlling the development of a
system within a specified timeframe at a minimum cost with the right functionality.

Project Work Plan


Prepare a list of all tasks in the work breakdown structure, plus:
• Duration of task.
• Current task status.
• Task dependencies.
• Key milestone dates.

Risk Management
• Risk management is concerned with identifying risks and drawing up plans to
minimize their effect on a project.
• A risk is a probability that some adverse circumstance will occur.
• Project risks which affect schedule or resources.
• Product risks which affect the quality or performance of the software being
developed.
• Business risks which affect the organization developing the software.

Risk Management Process


• Risk identification: identify project, product and business risks.
• Risk analysis: assess the likelihood and consequences of these risks.
• Risk planning: draw up plans to avoid or minimize the effects of the risk.
• Risk monitoring: monitor the risks throughout the project.
3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-2
Objective:- Study about project planning and management.

1. What is Risk?

2. What is Risk Management Principle?


3. How many types of Risk ?
4. What is system risk analysis or software reliability?

5. Explain different Prototype Models Types.

6. What is the difference between iterative model and prototype model?

7. What is waterfall model?

8. Explain different phases waterfall Models.

9. What is spiral model?


10. Explain different phases of spiral model.

PRACTICAL 3

SOFTWARE REQUIREMENT SPECIFICATION (SRS)

Objectives
• Gain a deeper understanding of the Software Requirement Specification
phase and the Software Requirement Specification (SRS).
• Learn how to write requirements and specifications.
Background
A requirement is a statement of a behavior or attribute that a system must possess for
the system to be acceptable to a stakeholder.
Software Requirement Specification (SRS) is a document that describes the
requirements of a computer system from the user's point of view. An SRS document
specifies:

• The required behavior of a system in terms of: input data, required processing, output
data, operational scenarios and interfaces.
• The attributes of a system including: performance, security, maintainability,
reliability, availability, safety requirements and design constraints.
Requirements management is a systematic approach to eliciting, organizing and
documenting the requirements of a system. It is a process that establishes and maintains
agreement between the customer and the project team on the changing requirements of
a system.
Requirements management is important because, by organizing and tracking the
requirements and managing the requirement changes, you improve the chances of
completing the project on time and under budget. Poor change management is a key
cause of project failure.

Requirements Engineering Process


Requirements engineering process consists of four phases:
• Requirements elicitation: getting the customers to state exactly what the
requirements are.
• Requirements analysis: making qualitative judgments and checking for
consistency and feasibility of requirements.
• Requirements validation: demonstrating that the requirements define the
system that the customer really wants.
• Requirements management: the process of managing changing requirements
during the requirements engineering process and system development, and
identifying missing and extra requirements.

Software Requirement Specification (SRS)

Remember that there is no “Perfect SRS”. However, SRS should be:

• Correct: each requirement represents something required by the target system.


• Unambiguous: every requirement in SRS has only one interpretation
• Complete: everything the target system should do is included in SRS
• Verifiable: there exists some finite process with which a person/machine can
check that the actual as-built software product meets the requirements.
• Consistent in behavior and terms.
• Understandable by customers.
• Modifiable: changes can be made easily, completely and consistently.
• Design independent: doesn't imply specific software architecture or algorithm.
• Concise: shorter is better.
• Organized: requirements in SRS are easy to locate; related requirements are
together.
• Traceable: each requirement is able to be referenced for later use (by the using
paragraph numbers, one requirement in each paragraph, or by using
convention for indication requirements)
3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-3
Objective:- Software Requirement Specification- Describe the individual
Phases/ modules of the project deliverables.

S.No. Viva Questions (to be answered in the Lab file)


1. What is Data Dictionary?
2. What Use Case Diagram?
3. What is Activity Diagram?
4. What is Class Diagram?
5. Differentiate between Activity diagram and State chart diagram.

6. What is sequence diagram?


Differentiate between Sequence diagram and State chart diagram.
7.
8. How message calling would occur in a sequence diagram.

9. Explain Data Modeling..

10. What is Debugging?

PRACTICAL 4

Software MODELING

Objective
Deeper understanding of Software modeling:
• Data model: entity-relationship diagram (ERD).
• Functional model: data flow diagram (DFD).

Background
Modeling consists of building an abstraction of reality. These abstractions are
simplifications because they ignore irrelevant details and they only represent the
relevant details (what is relevant or irrelevant depends on the purpose of the model).

Why Model Software?


Software is getting larger, not smaller; for example, Windows XP has more than 40
million lines of code. A single programmer cannot manage this amount of code in its
entirety. Code is often not directly understandable by developers who did not participate
in the development; thus, we need simpler representations for complex systems
(modeling is a mean for dealing with complexity).
A wide variety of models have been in use within various engineering disciplines for a
long time. In software engineering a number of modeling methods are also available.

Analysis Model Objectives


• To describe what the customer requires.
• To establish a basis for the creation of a software design.
• To define a set of requirements that can be validated once the software is built.

The Elements of the Analysis Model


The generic analysis model consists of:
• An entity-relati:onship diagram (data model).
• A data flow diagram (functional model).
• A state transition diagram (behavioral model).

Entity Relationship Diagram


An entity relationship diagram (ERD) is one means of representing the objects and their
relationships in the data model for a software product. Entity Relationship Diagrams
illustrate the logical structure of databases.

An ER Diagram

Entity Relationship Diagram Notations

Entity
An entity is an object or concept about which you want to store information.

Weak Entity
A weak entity is an entity that must defined by a foreign key relationship with another
entity as it cannot be uniquely identified by its own attributes alone.

Key attribute
A key attribute is the unique, distinguishing characteristic of the entity. For example, an
employee's social security number might be the employee's key attribute.

Multivalued attribute
A multivalued attribute can have more than one value. For example, an employee entity
can have multiple skill values.

Derived attribute
A derived attribute is based on another attribute. For example, an employee's monthly
salary is based on the employee's annual salary.
Relationships
Relationships illustrate how two entities share information in the database
structure.Learn how to draw relationships:
First, connect the two entities, then drop the relationship notation on the line.

Cardinality
Cardinality specifies how many instances of an entity relate to one instance of another
entity.
Ordinality is also closely linked to cardinality. While cardinality specifies the
occurences of a relationship, ordinality describes the relationship as either mandatory or
optional. In other words, cardinality specifies the maximum number of relationships and
ordinality specifies the absolute minimum number of relationships.

cardinality notations
Recursive relationship
In some cases, entities can be self-linked. For example, employees can supervise other
employees.

DATA FLOW DIAGRAM

A data flow data diagram is one means of representing the functional model of a
software product. DFDs do not represent program logic like flowcharts do.

Data Flow Diagram Notations

You can use two different types of notations on your data flow diagrams: Yourdon &
Coad or Gane & Sarson.

Process Notations

Process
A process transforms incoming data flow into outgoing data flow.
Yourdon and Coad Process Notations

Gane and Sarson Process Notation

Datastore Notations
Datastores are repositories of data in the system. They are sometimes also referred to as
files or databases.

Yourdon and Coad Datastore Notations

Gane and Sarson Datastore Notations


Dataflow Notations

Dataflows are pipelines through which packets of information flow. Label the arrows
with the name of the data that moves through it.

External Entity Notations

External Entity
External entities are objects outside the system, with which the system communicates.
External entities are sources and destinations of the system's
inputs and outputs.

To create a DFD you need to:


• Review ERD to isolate data objects and
grammatical parse to determine
operations.
• Determine external entities (producers and consumers of data).
• Create a level 0 DFD “Context Diagram” (one single process).
• Balance the flow to maintain data flow continuity.
• Develop a level 1 DFD
Data Flow Diagram Guidelines:
• All icons must be labeled with meaningful names.
• Always show external entities at level 0.
• Always label data flow arrows.
• Do not represent procedural logic.
• Each bubble is refined until it does just one thing.
3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-4
Objective:-
Describe: Relevance of CASE tools, high – end and low – end CASE tools,
automated support for data dictionaries, DFD, ER diagrams.

S.No. Viva Questions (to be answered in the Lab file)


1. What is Software Development Problems?
How can you debug a system in a production environment, while it is
2.
being used?
3. What is SWDLC?
4. What is Software testing?

5. What is coupling in software engineering?

6. What do low coupling and high cohesion mean?

7. What is Unit Testing?


8. Explain Deployment diagram.
9. What is collaboration diagram?
10. What State The basic Building Blocks in UML.?
PRACTICAL 5

UML DIAGRAMS

UML stands for Unified Modeling Language. UML is a standard language for writing
software blueprints. It may be used to visualize, specify , construct and document the
artifacts of a software – intensive system.
UML defines a number of diagrams so that we can focus on different aspects of the
system independently.

Types of UML Diagrams


UML defines nine types of diagrams:
1. Class (package)
2. Object
3. Use case
4. Sequence
5. Collaboration
6. State chart
7. Activity
8. Component
9. Deployment.
UML Class Diagram

Class diagrams are the backbone of almost every object-oriented method including
UML. They describe the static structure of a system.

Basic Class Diagram Symbols and Notations


Classes represent an abstraction of entities with common characteristics. Associations
represent the relationships between classes.
Illustrate classes with rectangles divided into compartments. Place the name of the class
in the first partition (centered, bolded, and capitalized), list the attributes in the second
partition, and write operations into the third.

Active Class
Active classes initiate and control the flow of activity, while passive classes store data
and serve other classes. Illustrate active classes with a thicker border.

Visibility
Use visibility markers to signify who can access the information contained within a
class. Private visibility hides information from anything outside the class partition.
Public visibility allows all other classes to view the marked information. Protected
visibility allows child classes to access information they inherited from a parent class.

Associations
Associations represent static relationships between classes. Place association names
above, on, or below the association line. Use a filled arrow to indicate the direction of
the relationship. Place roles near the end of an association. Roles represent the way the
two classes see each other.
Note: It's uncommon to name both the association and the class roles.

Multiplicity (Cardinality)
Place multiplicity notations near the ends of an association. These symbols indicate the
number of instances of one class linked to one instance of the other class. For example,
one company will have one or more employees, but each employee works for one
company only.

Constraint
Place constraints inside curly braces {}.

Simple Constraint

Composition and Aggregation


Composition is a special type of aggregation that denotes a strong ownership between
Class A, the whole, and Class B, its part. Illustrate composition with a filled diamond.
Use a hollow diamond to represent a simple aggregation relationship, in which the
"whole" class plays a more important role than the "part" class, but the two classes are
not dependent on each other. The diamond end in both a composition and aggregation
relationship points toward the "whole" class or the aggregate.

Generalization
Generalization is another name for inheritance or an "is a" relationship. It refers to a
relationship between two classes where one class is a specialized version of another.
For example, Honda is a type of car. So the class Honda would have a generalization
relationship with the class car.

In real life coding examples, the difference between inheritance and aggregation can be
confusing. If you have an aggregation relationship, the aggregate (the whole) can access
only the PUBLIC functions of the part class. On the other hand, inheritance allows the
inheriting class to access both the PUBLIC and PROTECTED functions of the
superclass.
UML Object Diagram

Object diagrams are also closely linked to class diagrams. Just as an object is an
instance of a class, an object diagram could be viewed as an instance of a class diagram.
Object diagrams describe the static structure of a system at a particular time and they
are used to test the accuracy of class diagrams.

Basic Object Diagram Symbols and Notations

Object names
Each object is represented as a rectangle, which contains the name of the object and its
class underlined and separated by a colon.

Object attributes
As with classes, you can list object attributes in a separate compartment. However,
unlike classes, object attributes must have values assigned to them.
Active object
Objects that control action flow are called active objects. Illustrate these objects with a
thicker border.

Multiplicity
You can illustrate multiple objects as one symbol if the attributes of the individual
objects are not important.

Links
Links are instances of associations. You can draw a link using the lines used in class
diagrams.

Self-linked
Objects that fulfill more than one role can be self-linked. For example, if Mark, an
administrative assistant, also fulfilled the role of a marketing assistant, and the two
positions are linked, Mark's instance of the two classes will be self-linked.

UML Sequence Diagram

Sequence diagrams describe interactions among classes in terms of an exchange of


messages over time.

Basic Sequence Diagram Symbols and Notations

Class roles
Class roles describe the way an object will behave in context. Use the UML object
symbol to illustrate class roles, but don't list object attributes.

Activation
Activation boxes represent the time an object needs to complete a task.
Messages
Messages are arrows that represent communication between objects. Use half-arrowed
lines to represent asynchronous messages. Asynchronous messages are sent from an
object that will not wait for a response from the receiver before continuing its tasks.

Various message types for Sequence and Collaboration diagrams

Lifelines
Lifelines are vertical dashed lines that indicate the object's presence over time.

Destroying Objects
Objects can be terminated early using an arrow labeled "<< destroy >>" that points to
an X.

Loops
A repetition or loop within a sequence diagram is depicted as a rectangle. Place the
condition for exiting the loop at the bottom left corner in square brackets[].

Use Case Diagram


Use case diagrams model the functionality of a system using actors and use cases. Use
cases are services or functions provided by the system to its users.
Basic Use Case Diagram Symbols and Notations

System
Draw your system's boundaries using a rectangle that contains use cases. Place actors
outside the system's boundaries.

Use Case
Draw use cases using ovals. Label with ovals with verbs that represent the system's
functions.

Actors
Actors are the users of a system. When one system is the actor of another system, label
the actor system with the actor stereotype.
Relationships
Illustrate relationships between an actor and a use case with a simple line. For
relationships among use cases, use arrows labeled either "uses" or "extends." A "uses"
relationship indicates that one use case is needed by another in order to perform a task.
An "extends" relationship indicates alternative options under a certain use case.

UML Collaboration Diagram


A collaboration diagram describes interactions among objects in terms of sequenced
messages. Collaboration diagrams represent a combination of information taken from
class, sequence, and use case diagrams describing both the static structure and dynamic
behavior of a system.

Basic Collaboration Diagram Symbols and Notations

Class roles
Class roles describe how objects behave. Use the UML object symbol to illustrate class
roles, but don't list object attributes.

Association roles
Association roles describe how an association will behave given a particular situation.
You can draw association roles using simple lines labeled with stereotypes.

Messages
Unlike sequence diagrams, collaboration diagrams do not have an explicit way to
denote time and instead number messages in order of execution. Sequence numbering
can become nested using the Dewey decimal system. For example, nested messages
under the first message are labeled 1.1, 1.2, 1.3, and so on. The a condition for a
message is usually placed in square brackets immediately following the sequence
number. Use a * after the sequence number to indicate a loop.

State chart Diagram


A statechart diagram shows the behavior of classes in response to external stimuli. This
diagram models the dynamic flow of control from state to state within a system.

Basic Statechart Diagram Symbols and Notations

States
States represent situations during the life of an object. You can easily illustrate a state in
SmartDraw by using a rectangle with rounded corners.
Transition
A solid arrow represents the path between different states of an object. Label the
transition with the event that triggered it and the action that results from it.

Initial State
A filled circle followed by an arrow represents the object's initial state.

Final State
An arrow pointing to a filled circle nested inside another circle represents the object's
final state.

Synchronization and Splitting of Control


A short heavy bar with two transitions entering it represents a synchronization of
control. A short heavy bar with two transitions leaving it represents a splitting of
control that creates multiple states.

UML Activity Diagram


An activity diagram illustrates the dynamic nature of a system by modeling the flow of
control from activity to activity. An activity represents an operation on some class in the
system that results in a change in the state of the system. Typically, activity diagrams
are used to model workflow or business processes and internal operation. Because an
activity diagram is a special kind of statechart diagram, it uses some of the same
modeling conventions.

Basic Activity Diagram Symbols and Notations

Action states
Action states represent the noninterruptible actions of objects. You can draw an action
state in SmartDraw using a rectangle with rounded corners.

Action Flow
Action flow arrows illustrate the relationships among action states.
Object Flow
Object flow refers to the creation and modification of objects by activities. An object
flow arrow from an action to an object means that the action creates or influences the
object. An object flow arrow from an object to an action indicates that the action state
uses the object.

Initial State
A filled circle followed by an arrow represents the initial action state.

Final State
An arrow pointing to a filled circle nested inside another circle represents the final
action state.

Branching
A diamond represents a decision with alternate paths. The outgoing alternates should be
labeled with a condition or guard expression. You can also label one of the paths "else."

Synchronization: A synchronization bar helps illustrate parallel transitions.

Synchronization is also called forking and joining.


3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-5
Objective:- Data Modeling Use work products – data dictionary, use case
diagrams and activity diagrams, build and test lass diagrams, sequence diagrams
and add interface to class diagrams

S.No. Viva Questions (to be answered in the Lab file)


1. Why UML is call object oriented?
2. Differentiate between Activity diagram and State chart diagram.

3. In sequence diagram what is represented on x-axis and y-axis?

4. Differentiate between Sequence diagram and State chart diagram.


What is the advantage of using UML diagrams in Software
5. development?
Differentiate B/w Software designing and Coding.
6.
State The difference between Program and software.
7.
Discuss the objectives of software design.
8.
9. What are the advantages of using Rational Rose tool?
10. Do you design software when you write a program?

PRACTICAL 6
SOFTWARE DESIGN
Objectives
• Deeper understanding of software design and the software design
document (SDD).

The purpose of software design is “to produce a workable (implementable) solution to a


given problem.”

The Design Process


Software design is an iterative process that is traceable to the software requirements
analysis process. Many software projects iterate through the analysis and design phases
several times. Pure separation of analysis and design may not always be possible.
Design Concepts
• The design should be based on requirements specification.
• The design should be documented (so that it supports implementation,
verification, and maintenance).
• The design should use abstraction (to reduce complexity and to hide
unnecessary detail).
• The design should be modular (to support abstraction, verification,
maintenance, and division of labor).
• The design should be assessed for quality as it is being created, not after the
fact.
• Design should produce modules that exhibit independent functional
characteristics.
• Design should support verification and maintenance.

3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-6

Objective:- Describe: software design principles.

S.No. Viva Questions (to be answered in the Lab file)


1. What is s/w project management?.
What is E-R diagrams?
2.
Differentiate between DFD and E-R diagrams.
3.
What is Data Modeling?
4.
Explain E-R notations.
5.
What is DFD diagrams and why they are used in this project?
6.
7. Differentiate B/w Software designing and Coding?
What is Object Diagram?
8.
9. Discuss the objectives of software design.
10. What is Attribute?

PRACTICAL 7
SOFTWARE TESTING

Objectives
• Gain a deeper understanding of software testing and the software testing
document.
• Software test specification
Background
Testing is the process of executing a program with the intent of finding errors. A good
test case is one with a high probability of finding an as-yet undiscovered error. A
successful test is one that discovers an as-yet-undiscovered error.
The causes of the software defects are: specification may be wrong; specification may
be a physical impossibility; faulty program design; or the program may be incorrect.
Basic Definitions
• A failure is an unacceptable behavior exhibited by a system.
• A defect is a flaw in any aspect of the system that contributes, or may
potentially contribute, to the occurrence of one or more failures. It might take
several defects to cause a particular failure.
• An error is a slip-up or inappropriate decision by a software developer that
leads to the introduction of a defect.
Good Test Attributes
A good test has a high probability of finding an error, not redundant, and should not
be too simple or too complex.
Unit Testing:
Unit testing is testing each unit separately. In unit testing interfaces tested for proper
information flow and local data are examined to ensure that integrity is maintained.
Boundary conditions and all error handling paths should also be tested.
Integration Testing:
INTEGRATION TESTING is a level of software testing where individual units are combined and
tested as a group. The purpose of this level of testing is to expose faults in the interaction between
integrated units. Test drivers and test stubs are used to assist in Integration Testing.

System Testing:
SYSTEM TESTING is a level of software testing where a complete and integrated software is tested.
The purpose of this test is to evaluate the system's compliance with the specified requirements.

Acceptance Testing:
ACCEPTANCE TESTING is a level of software testing where a system is tested for acceptability.
The purpose of this test is to evaluate the system's compliance with the business requirements and
assess whether it is acceptable for delivery.
3CS4-23 SOFTWARE ENGINEERING SE LAB

Practical No:-7

Objective:- Software Testing – Prepare test plan, perform validation testing


coverage analysis, memory leaks, develop test case hierarchy, Site check and site
monitor

S.No. Viva Questions (to be answered in the Lab file)


1. What is Software Testing?
2. What is Black Box Testing?

3. What is White Box Testing?

4. What is System Testing?


What is non- functional testing?
5.
What types of coverage are there?
6.
Do you know the difference between functional testing and
7. exploratory testing?
What is the difference between a Unit test and System testing?
8.
What is integration Testing?
9.
10. What is validation and What is Module Testing?

PRACTICAL 8

CASE STUDY ON YOUR PROJECT

1. Project Introduction
2. SWDLC
3. SRS
4. SOFTWARE MODELING: DFD
5. UML in Software Design
(i). Class diagram
(ii) Object diagram
(iii) Sequence diagram
(iv) State chart diagram
(v) Acitivity diagram.
(vi) UseCase diagram
6. Snapshots
7.Future Scope.
8. Conclusion

INTRODUCTION
The “LIBRARY MANAGEMENT SYSTEM” process made computerized to reduce
human errors and to increase the efficiency. The main focus of this project is to lessen
human efforts. The maintenance of the records is made efficient, as all the records are
stored in the ACCESS database, through which data can be retrieved easily.
This project gives us the complete information about the library. We can
enter the record of new books and retrieve the details of books available in the library.
We can issue the books to the students and maintain their records and can also check
how many books are issued and stock available in the library. In this project we can
maintain the late fine of students who returns the issued books after the due date.

VISUAL BASIC
Visual Basic is Graphical Rapid Application Development (RAD) tool that aims
at providing the user with a graphical interface that is intuitive and easy to use. Visual
Basic is a popular programming tool that can be used to write any kind of visual
application ranging from a game to a database management application. Now-a-days
Visual basic is being widely used for developing different types of applications and
performing various types of jobs. With Visual basic, one can automate everyday tasks,
add custom required features and functions to suit ones need, and create applications,
which makes task easier.
A visual Basic programming environment provides all features that are required to
develop a graphical user interface as ready to use components. The Visual Basic
programming environment is also called Point and Click environment. The programmer
does not have to write the code to create and display commonly required user-friendly
features each time around.
When the programmer needs a specific user interface feature such as a button, he
selects the appropriate ready to use component provided by the Visual programming
environment. These components can be moved, resized and renamed as required. So a
Visual programming environment automates the process of creating the user interface
by designing Visual interface using the ready to use components. In addition, it also
provides the means of associating the user written logically defined code with the
components used in a project.
My project on “Library Management” deals with the transaction happenings in Library
in an organization/institute.
This project will be proved easier, as more of the tasks obtained are managed by a
mouse click. The final reports and other facilities and calculations are calculated and
updated automatically
Advantages of Visual Basic
 Ready to use components
A Visual Basic programming environment provides all
Features that are required to develop a graphical user
Interface as ready to use components.
The Visual programming environment is also called
Point and Click environment.

The programmer does not have to write the code to create and display
commonly required user-friendly features each time around.
When the programmer needs a specific user interface feature
Such as a button, he selects the appropriate ready to use component
provided by the Visual Programming environment. These components can
be moved, resized and renamed as required. Also there is no restriction on
number of controls placed in the project.
 Built in Code
The interface components provided by the Visual programming environment
has some code built into them. For e.g., a button ‘ Knows’ when it has been
clicked upon and then when the event occurs, it executes the appropriate code.

Software Development Life Cycle


The product developed which achieves customer satisfaction is not done in a single
step. It involves series of steps in a software development process. This is needed to
develop quality products with error free products to achieve customer satisfaction.
There are many models available in the software development process.
But majority of software development process follow the model named as software
development life cycle. This software develop life cycle has number of steps in it. The
below article describes about the software development life cycle and the steps involved
into it. Software development life cycle model is also called as waterfall model which is
followed by majority of systems. This software development life cycle process has the
following seven stages in it namely

1. System Requirements Analysis


2. Feasibility study
3. Systems Analysis and Design
4. Code Generation
5. Testing
6. Maintenance
7. Implementation

1. System Requirements Analysis:


The first essential or vital thing required for any software development is system. Also
the system requirement may vary based on the software product that is going to get
developed. So a careful analysis has to be made about the system requirement needed
for the development of the product. After the analysis and design of the system
requirement phase the system required for the development would be complete and the
concentration can be on the software development process.

2. Feasibility study:
After making an analysis in the system requirement the next step is to make analysis of
the software requirement. In other words feasibility study is also called as software
requirement analysis. In this phase development team has to make communication with
customers and make analysis of their requirement and analyze the system. By making
analysis this way it would be possible to make a report of identified area of problem. By
making a detailed analysis on this area a detailed document or report is prepared in this
phase which has details like project plan or schedule of the project, the cost estimated
for developing and executing the system, target dates for each phase of delivery of
system developed and so on. This phase is the base of software development process
since further steps taken in software development life cycle would be based on the
analysis made on this phase and so careful analysis has to be made in this phase.

3. Systems Analysis and Design:


This is an important phase in system development .Here analysis is made on the design
of the system that is going to be developed. In other words database design, the design
of the architecture chosen, functional specification design, low level design documents,
high level design documents and so on takes place. Care must be taken to prepare these
design documents because the next phases namely the development phase is based on
these design documents. If a well structured and analyzed design document is prepared
it would reduce the time taken in the coming steps namely development and testing
phases of the software development life cycle.
4. Code Generation:
This is the phase where actual development of the system takes place. That is based on
the design documents prepared in the earlier phase code is written in the programming
technology chosen. After the code is developed generation of code also takes place in
this phase. In other words the code is converted into executables in this phase after code
generation.

5. Testing:
A software or system which is not tested would be of poor quality. This is because this
is the phase where system developed would be tested and reports are prepared about
bugs or errors in system. To do this testing phase there are different levels and methods
of testing like unit testing, system test and so on. Based on the need the testing methods
are chosen and reports are prepared about bugs. After this process the system again goes
to development phase for correction of errors and again tested. This process continues
until the system is found to be error free. To ease the testing process debuggers or
testing tools are also available.
6. Mainanence:
After the testing phase is completely through and the system is found to be error free it
is delivered to the customer. But no real system would be error free even then. This is
because when the system gets executed in real user system scenarios there would be
possibilities of lot of bugs and errors. This phase is called the maintenance phase and
the errors in this are recorded and changes has to be made in the system accordingly and
again testing phase comes into picture.
7. Implementation:
This is the final stage when the system gets into live. The above software development
process are all vital for a system to get developed with quality and thus to achieve
customer satisfaction which is the main objective of any software development process.
SYSTEM DESIGN

E-R DIAGRAM:

TABLE DESIGN
Account : Table
S.No. Field Name Data Type
1 Accno Number
2 Total_limit Number
3 Books_left Text
4 Status Text

Issue : Table
S.No. Field Name Data Type
1 Bno Number
2 Id Number
3 Issue_date Date/time
4 Due_date Date/time
5 Copies_available Number

User : Table
S.No. Field Name Data Type
1 Id Number
2 Roll_no Number
3 Name Text
4 Branch Text
Book : Table
S.No Field Name Data Type
.
1 B_no Number
2 ISBN Number
3 Subject Text
4 Name Text
5 Author Text
6 Publisher Text
7 Editor Number
8 Copies Number
9 Cost Number

Issue_return : Table
S.No. Field Name Data Type
1 B_no Number
2 Id Number
3 Issue_date Date/Time
4 Due_date Date/Time
5 Return_date Date/time
6 Fine Number
7 Copies_available Number

SNAPSHOTS

HOME FORM:
This is Form designed for selection of the different Menus. Following menu options
have been provided in this Home Form:-

1. Books Entry
2. User Entry
3. Issue of Books
a) Issue of Books
b) Return of the Books
4. Exit

By clicking the Book Entry Menu of the MDI form this form can be displayed for the
entry of new books in the library. Following Text Boxes have been provided for the
entry of the books related information:-
1. Book no.
2. ISBN No.
3. Subject
4. Name of the Book
5. Author
6. Publisher
7. Edition
8. Copies
9. Cost
In addition to above different Update, Delete, Add, Search, Refresh and Exit
command buttons have been provided in the form.

ACCOUNT FORM:

By clicking the second menu “ User Entry “ this form can be obtained for the entry of
the new user coming to the library as user account. The following provisions have been
provided in this form:-
1. Student Id
2. Roll No.
3. Name of the Student
4. Branch
In addition to above different Update, Delete, Add, Search, Refresh and Exit command
buttons have been provided in the form.
ISSUE FORM:
This form can be obtained by clicking the “Issues of Books” under the third menu
“Issues of Books” for issuing a particular book available in the library along with the
issue and due date. The following text boxes have been provided for entry of Issuance
of the Book.
1. Book No.
2. Student ID
3. Current No. of Copies Available
4. Issue Date
5. Due Date
In addition to above different Update, Delete, Add, Search, Refresh and Exit
command buttons have been provided in the form.
RETURN FORM:
This form can be obtained by clicking the “ Books Return ” under the third menu
“Issues of Books” for returning a particular book issued to user from the library along
with the issue , due date and return date with fine if any. The following text boxes have
been provided for entry of return of the Books.
6. Book No.
7. Student ID
8. Current No. of Copies Available
9. Issue Date
10. Due Date
11. Return Date
12. Fine, if any
In addition to above different Update, Delete, Add, Search, Refresh and Exit command
buttons have been provided in the form.
FUTURE SCOPE

FUTURE SCOPE OF APPLICATION :


This application can be easily implemented under various situations.We can add new
features as and when we require. Reusability is possible as and when require in this
application. There is flexibility in all the modules.

SOFTWARE SCOPE:

• Extensibility: This software is extendable in ways that its original developers may not
expect. The following principles enhances extensibility like hide data structure, avoid
traversing multiple links or methods, avoid case statements on object type and
distinguish public and private operations.

• Reusability: Reusability is possible as and when require in this application. We can


update it next version. Reusable software reduces design, coding and testing cost by
amortizing effort over several designs. Reducing the amount of code also simplifies
understanding, which increases the likelihood that the code is correct. We follow up
both types of reusability: Sharing of newly written code within a project and reuse of
previously written code on new projects.

• Understandability: A method is understandable if someone other than the creator of


the method can understand the code (as well as the creator after a time lapse). We use
the method, which small and coherent helps to accomplish this.

• Cost-effectiveness: Its cost is under the budget and make within given time period. It
is desirable to aim for a system with a minimum cost subject to the condition that it
must satisfy the entire requirement. Scope of this document is to put down the
requirements, clearly identifying the information needed by the user, the source of the
information and outputs expected from the system.

You might also like