[go: up one dir, main page]

0% found this document useful (0 votes)
122 views17 pages

Software Engineering Essentials

The document defines key concepts in software engineering including software, the software engineering process, and the generic process framework activities. It explains that software engineering involves applying engineering principles to software development. The generic process framework includes activities like communication, planning, modeling, construction, and deployment. It also discusses umbrella activities that occur throughout the software process like project tracking, risk management, and quality assurance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
122 views17 pages

Software Engineering Essentials

The document defines key concepts in software engineering including software, the software engineering process, and the generic process framework activities. It explains that software engineering involves applying engineering principles to software development. The generic process framework includes activities like communication, planning, modeling, construction, and deployment. It also discusses umbrella activities that occur throughout the software process like project tracking, risk management, and quality assurance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 17

563 - The Mandvi Education Society

Institute of Computer Studies – MCA

Subject Code : 3640003


Subject Name : Software Engineering
Prepared By: Dr. Vikas S. Chomal
Software Engineering & Process
 Syllabus
 Software
 Software Engineering

 Software Engineering – A Layered Technology


 Software Process

 Generic Process Framework Activities

 Umbrella Activities
Software

The IEEE Standard Glossary of Software engineering defines software as


computer programs, procedures, rules and possibly associated
documentation and data planning to the operation of a computer system.

In Pressman’s “Software Engineering - A practitioner’s approach”,


the definition is listed as follows –
1) Instructions (Computer Programs) when executed provide desired
results and performance.
2) Data structure that enable the programs to adequately manipulate
and,
3) Documents that describe the operations and use of the programs.

Prepared By: Dr. Vikas S. Chomal


WHAT IS SOFTWARE ENGINEERING?
Software has become critical to advancement in almost all areas of
human endeavour (effort). The art of programming only is no longer
sufficient to construct large programs. There are serious problems in
the cost, timeliness, maintenance and quality of many software
products.
Software engineering has the objective of solving these problems
by producing good quality, maintainable software, on time, within
budget. To achieve this objective, we have to focus in a disciplined
manner on both the quality of the product and on the process used
to develop the product.

Prepared By: Dr. Vikas S. Chomal


Definition
The IEEE Standard Glossary of Software Engineering
terminology defines software engineering as “The systematic
approach to the development, operations, maintenance and
refinement (modification, alteration) of software”.
According to Fritz Bauer – Software Engineering is the

establishment and use of sound engineering principles in order


to obtain economical software that is reliable and works
efficiently on real machine.

Prepared By: Dr. Vikas S. Chomal


The IEEE (93) has developed a more comprehensive definition
wherein it states:
Software Engineering is
1) the application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance of
software; that is, the approach of engineering to the software.
2) the study of approach as in (1).

Thus, the prime aim (goal) of software engineering is to


improve the quality of software products and to increase the
productivity and job satisfaction of software engineers.

Prepared By: Dr. Vikas S. Chomal


Software Engineering – A Layered Technology
Software Engineering is a layered technology. Like all other engineering
approaches, software engineering also rests on an organizational
commitment to quality.

Figure : Software Engineering – A Layered Technology

Prepared By: Dr. Vikas S. Chomal


The foundation that supports software engineering is a
quality focus’ layer. A product should meet its specification.
The basis for software engineering is the process layer.

Software engineering process holds the technology layers


together and enables rational and timely development of
computer software. Process defines a framework for a set
of key process areas that must be established for effective
delivery of software engineering technology.

Prepared By: Dr. Vikas S. Chomal


Software engineering methods provides the technical
knowledge for building software. A method encompasses a
broad array of tasks that include requirements analysis,
design, program construction, testing and support.
Software engineering tools provides automated or semi-

automated support for the process and the methods. When


tools are integrated so that information created by one
tool can be used by another, a system for support of
software development called CASE Tools (Computer Aided
Software Engineering Tools).

Prepared By: Dr. Vikas S. Chomal


The Software Process
 A process is a collection of activities, actions, and tasks that
are performed when some work product is to be created.
Elements of Process

 Activity: An activity strives (try hard) to achieve a broad

objective (e.g. communication with stakeholders) and is applied


regardless of the application domain, size of the project,
complexity of the effort, or degree of rigor (inflexibility) with
which software engineering is to be applied.

Prepared By: Dr. Vikas S. Chomal


 An action (e.g., architectural design) encompasses a set of tasks
that produce a major work product (e.g., an architectural design
model).
 A task focuses on a small, but well – defined objective (e.g.,
conducting a unit test) that produces a tangible outcome.

Prepared By: Dr. Vikas S. Chomal


 The Generic Process Framework activities:
1. Communication
2. Planning
3. Modeling
4. Construction
5. Deployment
 Communication: Before any technical work can commence, it is
critically important to communicate and collaborate with the
customer ( and other stakeholders). The intent is to understand
stakeholders’ objectives for the project and to gather
requirements that help define software features and functions.

Prepared By: Dr. Vikas S. Chomal


 Planning: Any complicated journey can be simplified if a map
exists. A software project is a complicated journey, and the planning
activity creates a “map” that helps guide the team as it makes the
journey.
The map – called a software project plan – defines the
software engineering work by describing the technical tasks to be
conducted, the risks that are likely, the resources that will be
required, the work products to be produced, and a work schedule.

Prepared By: Dr. Vikas S. Chomal


 Modeling: A software engineers creates a model to better
understand software requirements and the design that will achieve
those requirements.
 Construction: This activity combines code generation (either
manual or automated) and the testing that is required to uncover
errors in the code.
 Deployment: The software (as a complete entity or as a partially
completed increment) is delivered to the customer who evaluates the
delivered product and provides feedback based on the evaluation.

Prepared By: Dr. Vikas S. Chomal


Umbrella Activities
Umbrella activities occur throughout the software process

and focus primarily on project management, tracking, and


control.
Typical Umbrella Activities includes:
1. Software project tracking and control – allows the software
team to assess progress against the project plan and take
any necessary action to maintain the schedule.
2. Risk management – assesses risks that may effect the
outcome of the project or the quality of the product.
3. Software quality assurance - defines and conducts the
activities required to ensure software quality.
Prepared By: Dr. Vikas S. Chomal
4. Technical reviews – assesses software engineering work
products in an effort to uncover and remove errors before
they are propagated (spread) to the next activity.
5. Measurement – defines and collects process, project, and
product measures that assist the team in delivering software
that meets stakeholders’ needs; can be used in conjunction
with all other framework and umbrella activities.
6. Software configuration management – manages the effects
of change throughout the software process.

Prepared By: Dr. Vikas S. Chomal


7. Reusability management – defines criteria for work product
reuse (including software components) and establishes
mechanisms to achieve reusable components.
8. Work product preparation and production – encompasses
the activities required to create work products such as
models, documents, logs, forms, and lists.

Prepared By: Dr. Vikas S. Chomal

You might also like