0% found this document useful (0 votes)
23 views10 pages

Paper 4 Software Engineering

Software

Uploaded by

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

Paper 4 Software Engineering

Software

Uploaded by

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

What is Software Engineering?

Software Engineering is the process of designing,

developing, testing, and maintaining software. It is

a systematic and disciplined approach to software

development that aims to create high-quality,

reliable,and maintainable software.

1. Software engineering includes a variety of

techniques, tools, and methodologies, including

requirements analysis, design, testing, and

maintenance.

2. It is a rapidly evolving field, and new tools and

technologies are constantly being developed to

improve the software development process.

3.By following the principles of software


engineering and using the appropriate tools and

methodologies, software developers can create

high-quality, reliable, and maintainable software


that meets the needs of its users.

4.Software Engineering is mainly used for large

projects based on softwaresystems rather than

single programs or applications.

5.The main goal of Software Engineering is to

develop software applications for improving

quality, budget, and time efficiency.


6.Software Engineering ensuresthat the software
that has to be built should be consistent,

correct, also on budget, on time, and within the

required requirements.

Key Principles of Software


Engineering

1. Modularity: Breaking the software into smaller,

reusable components that can be developed

and tested independently.

2. Abstraction: Hiding the implementation details

of a component and exposing only the

necessary functionality to other parts of the

software.

3.Encapsulation: Wrapping up the data and

functions of an object into a single unit, and

protecting the internal state of an object from

external modifications.

4. Reusability: Creating components that can be

used in multiple projects, which can save time

and resources.

5.Maintenance: Regularly updating and improving


the software to fix bugs, add new features, and
address security vulnerabilities.

6. Testing:Verifying that the software meets its


6. Testing: Verifying that the software meets its

requirements and is free of bugs.

7. Design Patterns: Solving recurring problems in

software design by providing templatesfor

solving them.
8. Agile methodologies: Using iterative and

incremental development processes that focus

customer satisfaction, rapid delivery, and


flexibility.

9.Continuous Integration & Deployment:


Continuously integrating the code changes and

deploying them into the production


environment.

Main Attributes of Software


Engineering

Software Engineering is a systematic, disciplined,

quantifiable study and approach to the design,

development, operation, and maintenance of a


software system. There are four main Attributes

of Software Engineering.

1. Efficiency: It provides a measure of the resource

requirement of a software product efficiently.

2. Reliability: It assures that the product will

deliver the same results when used in similar


working environment.

3. Reusability:This attribute makes sure that the

module can be used in multiple applications.

4. Maintainability: It is the ability of the software


to be modified, repaired,or enhanced easily with

changing requirements.

DualRole of Software

There is a dual role of software in the industry. The

first one is as a product and the other one is as a

vehicle for delivering the product. We will discuss

both of them.

1. As a Product

• It delivers computing potential across networks

of Hardware.

Itenables the Hardware to deliver the expected

functionality.

It acts as an information transformer because it



produces, manages,acquires, modifies, displays,

or transmits information.

2.As a Vehicle for Deliveringa Product

• It provides system functionality(e.g.,payroll

system).
• It controls other software (e.g., an operating

system).

•It helps build other software (e.g., software

tools).

Objectives of Software
Engineering

1. Maintainability: It should be feasible for the


softwareto evolve to meet changing

requirements.

2.Efficiency: The softwareshould not make

wasteful use of computing devices such as

memory, processor cycles, etc.


3. Correctness: A software product is correct if

the different requirements specified in the SRS


Document have been correctly implemented.
4.Reusability: A software product has good
reusabilityif the different modules of the

product can easily be reused to develop new


products.

5.Testability: Here software facilitates both the

establishment of test criteria and the evaluation

of the software concerning those criteria.

6. Reliability: It isan attribute of software quality.

The extent to which aprogram can be expected


Software Design Process -Software
Engineering

The design phase of software development deals


with transforming the customer requirements as

described in the SRS documents into a form

implementableusing a programming language.


The software design processcan be divided into

the following three levels or phases of design:

1. Interface Design

2. Architectural Design

3.Detailed Design

Elements of aSystem

1. Architecture: This is the conceptual model that

defines the structure, behavior, and views of a

system.We can use flowcharts to represent and


illustrate the architecture.

2. Modules: These are components that handle

one specifictask in a system.A combination of


the modules makes up the system.

3. Components: This provides a particular function

or group of related functions. They are made up


of modules.

4. Interfaces:This is the shared boundary across


4.Interfaces:This is the shared boundary across

which the components of a system exchange


information and relate.

5.Data: This is the management of the information


anddata flow.

Analyze the
problem

Document

Generate the Generate the Generate the


system interface Architecture design
detailed

Document Document Document

Evaluate the Evaluate the Evaluate the


|system document Architecture detailed design

Document Document Document

Review the
design

Software Design Process

Interface Design

Interface design is the specification of the

interaction between a system and its environment.

This phase proceeds at a high level of abstraction

with respect to the inner workings of the system

ie, during interface design, the internal of the

systems are completely ignored, and the system is

treated as a black box. Attention is focused on the


treated as a black box. Attention is focused on the

dialogue between the target system and the users,

devices, and other systems with which it interacts.

The design problenm statementproduced during

the problem analysis step should identify the

people, other systems,and devices which are

collectively called agents.

Interfacedesign should include the following

details:

1. Precise description of events in the environment,

or messages from agents to which the system


must respond.

2. Precise descriptionof the events or messages

that the system must produce.


3.Specification of the data, and the formatsof the

data coming into and going out of the system.

4.Specification of the ordering and timing

relationships between incoming events or

messages, and outgoing events or outputs.

Architectural Design

Architectural design is the specification of the

major components of a system,their


responsibilities, properties, interfaces, and the
Architectural Design

Architectural design is the specification of the

major components of a system,their

responsibilities, properties, interfaces,and the

relationships and interactions between them. In


architectural design, the overall structure of the

system is chosen,but the internal details of major

Components are ignored. lssues in architectural

design includes:

1.Gross decomposition of thesystems intomajor


Components.
2. Allocation of functional responsibilities to

Components.

3. Component Interfaces.

4. Component scaling and performance properties,


resource consumption properties, reliability

properties, and so forth.


5.Communication and interaction between

components.

The architectural design adds important details

ignored during the interface design. Design of the

internals of the major components is ignored until

the last phase of the design.


Detailed Design

Detailed design is the specification of the internal

elements of allmajor system components, their

properties, relationships, processing, and often

their algorithms and the data structures. The


detailed design may include:

1.Decomposition of major system components

into program units.

2. Allocation of functional responsibilities to units.

3. User interfaces.

4. Unit states and state changes.

5. Data and control interaction between units.

6. Data packaging and implementation, including

issues of scope and visibility of program

elements.

7. Algorithmsand data structures.

You might also like