Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

National College of Business Administration

& Economics Lahore


SCHOOL OF COMPUTER SCIENCE

Total Marks: 40

Obtained Marks:

Software Engineering

Final Term
Submission Date: 13 January 2020

Submitted To: Sir Saleem


_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Student Name: Syed Usama Ali


______________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Reg Number: 2183054_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Question No (i)

A company consists of departments. Departments are located in one or


more offices. One office acts as a headquarters. Each department has a
manager who is recruited from the set of employees.
Your task is to model the system for the company. Draw a class diagram
that consists of all the classes in your system, their attributes and
operations, relationships between the classes, multiplicity specifications, and
other model elements that you find appropriate.

Answer is:

This is a class diagram example that shows how company entities can be modeled

A company consists of departments. Departments are located in one or more offices.


One office acts as a head quarter. Each department has a manager who is recruited
from the set of employees. Your task is to model the system for the company.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Question No (ii)
Define modularization. Why a system design with high cohesion and low
coupling is desired?
Also discuss in brief various types of cohesion?

Answer is :

Modularization is the process of dividing a software system into multiple


independent modules where each module works independently. There are
many advantages of Modularization in software engineering.

Advantages:
 Easy to understand the system.
 System maintenance is easy.
 A module can be used many times as their requirements. No need to write
it again and again.

Coupling is the measure of the degree of interdependence between the


modules. A good software will have low coupling.
While
Cohesion is the internal glue that keeps the module together. A good
software design will have high cohesion.

Types of Cohesion

 Functional Cohesion: Every essential element for a single computation is


contained in the component. A functional cohesion performs the task and
functions. It is an ideal situation.

 Sequential Cohesion: An element outputs some data that becomes the


input for other element, i.e., data flow between the parts. It occurs
naturally in functional programming languages
.
 Communicational Cohesion: Two elements operate on the same input
data or contribute towards the same output data. Example- update record
into the database and send it to the printer.
Software Engineering BS(CS)-M1 NCBA&E
National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

 Procedural Cohesion: Elements of procedural cohesion ensure the order


of execution. Actions are still weakly connected and unlikely to be
reusable.

 Temporal Cohesion: The elements are related by their timing involved. A


module connected with temporal cohesion all the tasks must be executed
in the same time-span.

 Logical Cohesion: The elements are logically related and not functionally.
Ex- A component reads inputs from tape, disk, and network. All the code
for these functions is in the same component

 Coincidental Cohesion: The elements are not related (unrelated). The


elements have no conceptual relationship other than location in source
code. It is accidental and the worst form of cohesion.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Question No (iii)
Distinguish between software verification and validation. What is the
verification and validation performed during the software life cycle? Can
one be used in place of the other? Justify your answer.

Answer is :

Verification Validation
1. Verification is a static practice of
1. Validation is a dynamic mechanism of
verifying documents, design, code and
validating and testing the actual product.
program.
2. It does not involve executing the code. 2. It always involves executing the code.
3. It is human based checking of 3. It is computer based execution of
documents and files. program.
4. Verification uses methods like 4. Validation uses methods like black box
inspections, reviews, walkthroughs, and (functional) testing, gray box testing, and
Desk-checking etc. white box (structural) testing etc.
5. Validation is to check whether
5. Verification is to check whether the
software meets the customer expectations
software conforms to specifications.
and requirements.
6. It can catch errors that validation 6. It can catch errors that verification
cannot catch. It is low level exercise. cannot catch. It is High Level Exercise.
7. Target is requirements specification,
7. Target is actual product-a unit, a
application and software architecture,
module, a bent of integrated modules, and
high level, complete design, and
effective final product.
database design etc.
8. Verification is done by QA team to
8. Validation is carried out with the
ensure that the software is as per the
involvement of testing team.
specifications in the SRS document.
9. It generally comes first-done before
9. It generally follows after verification.
validation.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

It is often possible that a product passes through the verification but fails
in the validation phase. As it met the documented requirements &
specifications, however, those specifications were themselves incapable
to address the user’s needs. Thus, it is important to carry out testing for
both the types to ensure the overall quality.

Verification can be used as an internal process in development, scale-


up, or production. On the other hand, validation should be used as an
external process to get the acceptance of fitness with stakeholders

Both verification and validation are related to the concepts of quality and
of software quality assurance. By themselves, verification and validation
do not guarantee software quality; planning, traceability, configuration
management and other aspects of software engineering are required.
Within the modeling and simulation (M&S) community, the definitions of
verification, validation and accreditation are similar.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Question No (4)

Explain the process of software configuration management with the help of


block diagram. How does any software change occur? Discuss the concept of
baseline.

Answer is:
A configuration is the set of characteristics that define a final product or
deliverable. This includes all functional and physical specifications.
Physical specifications may include the color, size, weight, shape, and
materials. Functional specifications dictate the ability for the product to
achieve a certain outcome.
Take a car for example. Physical specs may call for a red, 4-door
vehicle. Functional specs could include the ability to reach 60 mph in 10
seconds and meet emissions standards.
Diagram:

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Change Control
Change control is a procedural method which ensures quality and
consistency when changes are made in the configuration object. In this
step, the change request is submitted to software configuration manager.

Activities during this process:

 Control ad-hoc change to build stable software development


environment. Changes are committed to the repository
 The request will be checked based on the technical merit, possible
side effects and overall impact on other configuration objects.
 It manages changes and making configuration items available during
the software lifecycle

Baseline:
A baseline is a formally accepted version of a software configuration item. It
is designated and fixed at a specific time while conducting the SCM
process. It can only be changed through formal change control procedures.

Activities during this process:

 Facilitate construction of various versions of an application


 Defining and determining mechanisms for managing various versions
of these work products
 The functional baseline corresponds to the reviewed system
requirements
 Widely used baselines include functional, developmental, and product
baselines

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Question No (5)
Discuss the limitations of software process models. Which according to you
is the best model of software development? Justify your answer with
example.

Limitation:
Waterfall Model
Advantages:

Simple, easy to understand and follow.


Highly structured, therefore good for beginners.
After specification is complete, low customer involvement required.

Disadvantages:

Inflexible - can't adapt to changes in requirements.

Prototyping Model:

A variation of the waterfall that adds a new phase, prototyping. There are
several kinds of prototypes but they all intend to reduce risk by building a
quick and dirty replica or mockup of the intended system.
It can be used to demonstrate technical feasibility when the technical risk is
high. It can also be used to better understand and elicit user requirements.
In either case,
the goal is to reduce risk and limit costs by increasing understanding of
proposed solutions before committing more resources.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Spiral Model
An iterative approach where multiple passes are made through each
phase. During each iteration the system is explored at greater depth and
more detail is added. Appropriate for exploratory projects that are working
in an unfamiliar domain or with unproven technical approaches. The
iterative natures allows for knowledge gained during early passes to inform
subsequent passes. Requires low up-front commitment.
Advantage:
Manages uncertainty inherent in exploratory projects.
Disadvantage:
Difficult to establish stable documents; things keep getting modified during
each iteration.

Agile Model

An iterative approach. During each iteration a single feature or small set of


features are chosen and implemented completely.

Advantages:

Can adapt to changing requirements because you haven't committed to big


design that encompasses everything.

Easy to change direction to adapt to dynamic market conditions.

Disadvantages:

Used as an excuse for hacking - proceeding without a plan.


Substantial refactoring or redesign may be needed between iterations.

Not suitable for large projects or large teams.


Requires huge customer involvement, which is unusual to find.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Evolutionary Model ("Staged Delivery")


Recommended by McConnell.
All analysis and design is done up front.
Each stage releases some fully functional subset of desired features.
Emphasis is on high quality releases.
Can incorporate prototyping
.
Advantages:
Partial functionality available early.
Some flexibility in responding to changing market conditions or customer
needs.
A complete and stable design is produced.
A compromise between waterfall and agile
.
Disadvantages:
Can't easily adapt to entirely new requirements.

The Waterfall Model was the first Process Model to be introduced. It is


also referred to as a linear-sequential life cycle model. It is very simple to
understand and use. In a waterfall model, each phase must be completed
before the next phase can begin and there is no overlapping in the
phases.
The Waterfall model is the earliest SDLC approach that was used for
software development.
The waterfall Model illustrates the software development process in a
linear sequential flow. This means that any phase in the development
process begins only if the previous phase is complete. In this waterfall
model, the phases do not overlap.
Waterfall Model - Design
Waterfall approach was first SDLC Model to be used widely in Software
Engineering to ensure success of the project. In "The Waterfall" approach,
the whole process of software development is divided into separate
phases. In this Waterfall model, typically, the outcome of one phase acts
as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the
Waterfall Model.

Software Engineering BS(CS)-M1 NCBA&E


National College of Business Administration
& Economics Lahore
SCHOOL OF COMPUTER SCIENCE

Some of the major advantages of the Waterfall Model are as


follows –
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each phase has
specific deliverables and a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well
understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

The Waterfall model was used to develop enterprise applications


like Customer Relationship Management (CRM) systems, Human
Resource Management Systems (HRMS), Supply Chain
Management Systems, Inventory Management Systems, Point of
Sales (POS) systems for retail chains, etc.

Also, for example, the software development arm of Toyota has been
traditionally working with waterfall models.

The waterfall model was also used in banking, healthcare, control systems for nuclear
facilities, space shuttles, etc.

Software Engineering BS(CS)-M1 NCBA&E

You might also like