0% found this document useful (0 votes)
118 views6 pages

Unit 1 Software Engineering

The document outlines the syllabus for the 3rd semester of a Software Engineering course. It covers 6 units: [1] Introduction to software engineering, including the evolution of software, definitions, characteristics, and software life cycle models. [2] Software requirements analysis and specification processes. [3] Software project management activities. [4] Detailed design approaches and techniques. [5] Software testing fundamentals and strategies. [6] Software maintenance and quality assurance processes.
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)
118 views6 pages

Unit 1 Software Engineering

The document outlines the syllabus for the 3rd semester of a Software Engineering course. It covers 6 units: [1] Introduction to software engineering, including the evolution of software, definitions, characteristics, and software life cycle models. [2] Software requirements analysis and specification processes. [3] Software project management activities. [4] Detailed design approaches and techniques. [5] Software testing fundamentals and strategies. [6] Software maintenance and quality assurance processes.
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/ 6

CSE34D

SOFTWARE ENGINEERING
LOVELY PROFESSIONAL UNIVERSITY
SYLLABUS OF 3 r d Semester

Unit I Introduction to software engineering : Evolution and impact of software engineering, The
evolving role of Software & changing nature of software., Definition of a Software, Characteristics of
a Software, Software Engineering –Definition of Software Engineering, Need of Software
Engineering, Software engineering challenges., Software life cycle models: Waterfall model,
Prototyping model, Spiral models and V-models.

Unit II Software requirements analysis and specification: Requirement Engineering process,


Classification of Software Requirement. Requirement gathering, fact-finding techniques- interview,
questionnaire, record review, observation, Software Requirements specification (SRS), Need for SRS,
Characteristics of an SRS, Components of an SRS.

Unit III Software project management : Software Project, Need of Software Project Management,
Software Management Activities- Project Planning, Scope Management, Project Estimation, Function
points, COCOMO model, Project scheduling using PERT and GANTT charts.

Unit IV Detailed Design : Module specification, file design, data base design, Design of files, types of
files and methods of file organization., Top-Down and Bottom-up approach of designing, Physical
and logical design, Module Coupling and Cohesion techniques.

Unit V Software Testing : Fundamentals of testing, Definition of Software testing, code review, test
plan, test cases, test data, Characteristics of Testing Strategies., Software Validation and software
verification, Black box testing techniques, White box testing techniques, Levels of testing.

Unit VI Software Maintenance and Quality : Software Quality Assurance, Software Quality
Challenge, Software Maintenance, Need for Maintenance, Types of maintenance, Software Re-
engineeringReverse Engineering, Forward Engineering.
UNIT-1 INTRODUCTION TO SOFTWARE ENGINEERING

1. The evolving role of Software & changing nature of software.

Software takes on a dual role. It is a product, and at the same time, the vehicle for delivering
a product. As a product, it delivers the computing potential embodied by computer
hardware or more broadly, by a network of computers that are accessible by local
hardware. . As the vehicle used to deliver the product, software acts as the basis for the
control of the computer (operating systems), the communication of information (networks),
and the creation and control of other programs (software tools and environments).

The role of computer software has undergone significant change over the last half-century.
Dramatic improvements in hardware performance, profound changes in computing
architectures, vast increases in memory and storage capacity, and a wide variety of exotic
input and output options, have all precipitated more sophisticated and complex computer-
based systems.

2. Definition of a Software.

 Software is instruction that when executed provide desired features, function, and
performance.
 Software is data structures that enable the programs to adequately manipulate information
 It is descriptive information in both hard copy and virtual forms that describes the operation
and use of the programs.

3. Characterstics of Software.

There 3 main characterstics of software


1. Software is developed or engineered-: it is not manufactured in the classical sense , Although
some similarities exist between software development and hardware manufacturing, few activities
are fundamentally different. In both activities, high quality is achieved through good design, but the
manufacturing phase for hardware can introduce quality problems than software.

2. The software doesn’t “wear out-: Hardware components suffer from the growing effects of many
other environmental factors. Stated simply, the hardware begins to wear out.Software is not
susceptible to the environmental maladies that cause hardware to wear out.When a hardware
component wears out, it is replaced by a spare part.There are no software spare parts.Every
software failure indicates an error in design or in the process through which design was translated
into machine-executable code. Therefore, the software maintenance tasks that accommodate
requests for change involve considerably more complexity than hardware maintenance. However,
the implication is clear—the software doesn’t wear out. But it does deteriorate.

3. The software continues to be custom-built-: A software part should be planned and carried out
with the goal that it tends to be reused in various projects.Current reusable segments encapsulate
the two information and the preparation that is applied to the information, empowering the
programmer to make new applications from reusable parts.In the hardware world, component reuse
is a natural part of the engineering process.
Software Engineering

Software Engineering-:
 the establishment and use of sound engineering principles in order to obtain economically
software that is reliable and works efficiently on real machines.
 Software Engineering is the application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software; that is, the application of
engineering to software.
 The software engineering process is the glue that holds the technology layers together and
enables rational and timely development of computer software.

NEED OF SOFTWARE ENGINEERING


Software engineering methods provide the technical how-to’s for building software. Methods
encompass a broad array of tasks that include communication, requirements analysis, design
modeling, program construction, testing, and support. Software engineering methods rely on a set of
basic principles that govern each area of the technology and include modeling activities and other
descriptive techniques.

SOFTWARE ENGINEERING CHALLENGES


 When a new application or embedded system is to be built, many voices must be heard. And
it sometimes seems that each of them has a slightly different idea of what software features
and functions should be delivered. It follows that a concerted effort should be made to
understand the problem before a software solution is developed.
 Large teams of people now create computer programs that were once built by a single
individual. Sophisticated software that was once implemented in a predictable, self-
contained, computing environment is now embedded inside everything from consumer
electronics to medical devices to weapons systems. The complexity of these new computer-
based systems and products demands careful attention to the interactions of all system
elements. It follows that design becomes a pivotal activity.
 Individuals, businesses, and governments increasingly rely on software for strategic and
tactical decision making as well as day-to-day operations and control. If the software fails,
people and major enterprises can experience anything from minor inconvenience to
catastrophic failures. It follows that software should exhibit high quality.
 software should exhibit high quality. • As the perceived value of a specific application grows,
the likelihood is that its user base and longevity will also grow. As its user base and time-in-
use increase, demands for adaptation and enhancement will also grow. It follows that
software should be maintainable.
SOFTWARE ENGINEERING MODELS

1. Waterfall Model-: The waterfall model, sometimes called the classic life cycle, suggests a
systematic, sequential approach6 to software development that begins with customer
specification of requirements and progresses through planning, modeling, construction, and
deployment, culminating in ongoing support of the completed software.
The problems that are sometimes encountered when the waterfall model is applied are:
 . Real projects rarely follow the sequential flow that the model proposes. Although
the linear model can accommodate iteration, it does so indirectly. As a result,
changes can cause confusion as the project team proceeds
 It is often difficult for the customer to state all requirements explicitly. The waterfall
model requires this and has difficulty accommodating the natural uncertainty that
exists at the beginning of many projects
 The customer must have patience. A working version of the program(s) will not be
available until late in the project time span. A major blunder, if undetected until the
working program is reviewed, can be disastrous.

2. V Model-: The V-model depicts the relationship of quality assurance actions to the actions
associated with communication, modeling, and early construction activities. As a software
team moves down the left side of the V, basic problem requirements are refined into
progressively more detailed and technical representations of the problem and its solution.
Once code has been generated, the team moves up the right side of the V, essentially
performing a series of tests (quality assurance actions) that validate each of the models
created as the team moved down the left side. The V-model provides a way of visualizing
how verification and validation actions are applied to earlier engineering work.

3. Protyping-: Prototyping can be used as a stand-alone process model, it is more commonly


used as a technique that can be implemented within the context of any one of the process
models noted in this chapter. Regardless of the manner in which it is applied, the
prototyping paradigm assists you and other stakeholders to better understand what is to be
built when requirements are fuzzy.

4. Spiral model-: The spiral development model is a risk-driven process model generator that is
used to guide multi-stakeholder concurrent engineering of software intensive systems. It has
two main distinguishing features. One is a cyclic approach for incrementally growing a
system’s degree of definition and implementation while decreasing its degree of risk. The
other is a set of anchor point milestones for ensuring stakeholder commitment to feasible
and mutually satisfactory system solutions.
EVOLUTION AND IMPACT OF SOFTWARE ENGINEERING

Software Evolution is a term which refers to the process of developing software initially, then timely
updating it for various reasons.

The impact of these changes are accessed to see how much system is affected by the change and
how much it might cost to implement the change. If the proposed changes are accepted, a new
release of the software system is planned. During release planning, all the proposed changes are
considered. 

The necessity of Software evolution: 


Software evaluation is necessary just because of the following reasons:
1. Change in requirement with time: With the passes of time, the organization’s needs and
modus Operandi of working could substantially be changed so in this frequently changing
time the tools(software) that they are using need to change for maximizing the
performance.

2. Environment change: As the working environment changes the things(tools) that enable us
to work in that environment also changes proportionally same happens in the software
world as the working environment changes then, the organizations need reintroduction of
old software with updated features and functionality to adapt the new environment.

3. Errors and bugs: As the age of the deployed software within an organization increases their
preciseness or impeccability decrease and the efficiency to bear the increasing complexity
workload also continually degrades. So, in that case, it becomes necessary to avoid use of
obsolete and aged software. All such obsolete Softwares need to undergo the evolution
process in order to become robust as per the workload complexity of the current
environment.  

4. Security risks: Using outdated software within an organization may lead you to at the verge
of various software-based cyberattacks and could expose your confidential data illegally
associated with the software that is in use. So, it becomes necessary to avoid such security
breaches through regular assessment of the security patches/modules are used within the
software. If the software isn’t robust enough to bear the current occurring Cyber attacks so
it must be changed (updated).

5. For having new functionality and features: In order to increase the performance and fast
data processing and other functionalities, an organization need to continuously evolute the
software throughout its life cycle so that stakeholders & clients of the product could work
efficiently.

Laws used for Software Evolution:  


 
1. Law of continuing change: 
This law states that any software system that represents some real-world reality undergoes
continuous change or become progressively less useful in that environment.
2. Law of increasing complexity: 
As an evolving program changes, its structure becomes more complex unless effective
efforts are made to avoid this phenomenon.
3. Law of conservation of organization stability: 
Over the lifetime of a program, the rate of development of that program is approximately
constant and independent of the resource devoted to system development.
4. Law of conservation of familiarity:  
This law states that during the active lifetime of the program, changes made in the
successive release are almost constant.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy