Upload
keiven-tripoli
View
215
Download
0
Embed Size (px)
Citation preview
8/14/2019 Part 1 - Product and Process Final
1/80
Innovation
Software Engineering.Software Engineering
Think Differently
8/14/2019 Part 1 - Product and Process Final
2/80
Software Engineering
Software Engineering
PART I The Product and the Process
PART II Managing Software Projects
PART III Conventional Methods for Software Engineering
PART IV Object Oriented Software Engineering
PART V Advanced Topics in Software Engineering
INTRODUCTION Class Orientation
8/14/2019 Part 1 - Product and Process Final
3/80
Software Engineering
Introduction - Course Objectives
PART I PART II PART III PART IV PART VINTRODUCTION
At the end of the semester, the students are expected to:
Define software engineering, its processes and products. Enumerate the steps to be done during software development. Enumerate available models with their functionalities useful in software
engineering. Identify each person with their roles in software development. Identify the conventional methods in software engineering. Define Object-Oriented Software Engineering and its processes involved. Design a Software Engineering guided document. Create an Information System guided by Software Engineering models and
methodologies. Develop values on critical thinking in dealing IS problems and provide
alternative solutions.
8/14/2019 Part 1 - Product and Process Final
4/80
Software Engineering
Introduction - Books/References
PART I PART II PART III PART IV PART VINTRODUCTION
Books/References
Pressman, Roger S., Software Engineering, A Practitioners Approach, 5
th
Edition, McGrawHill International Edition, Computer Science Series, 2001
Shari, Lawrence, Pfleeger,Software Engineering, Theory and Practice, 2ndEdition, Low PriceEdition, Pearson Education Asia, 2001
Sommerville, I, Sofware Engineering7th ed.Pearson, 2004
8/14/2019 Part 1 - Product and Process Final
5/80
Software Engineering
PART I PART II PART III PART IV PART VINTRODUCTION
Introduction Software Engineering
What is Software Engineering?
Software engineering is the application of a systematic, disciplined, quantifiableapproach to the development, operation, and maintenance of software. Software engineering is the establishment and use of sound engineering principles
in order to obtain economically software that is reliable and works efficiently on realmachines.
Why study Software Engineering?
8/14/2019 Part 1 - Product and Process Final
6/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product
Objectives:
Define Software Describe the characteristics of a software Give Examples of a software application Distinguish the facts from fictions in Software
Development Cite scenarios and identify the appropriate software to be
used.
8/14/2019 Part 1 - Product and Process Final
7/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /2
What is a Software?
Instructions (Computer Programs) that when executed,provide desired function and performance.
Characteristics Developed/Engineered, not manufactured Dont wear out
Most software continues to be custom built.
8/14/2019 Part 1 - Product and Process Final
8/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /3
Software Applications
System Software collection of programs written toservice other programs. (e.g. Drivers, OS components) Real-time Software monitors/analyzes/controls real-
world events as they occur. Business Software business information processing Engineering and Scientific Software processing of
scientific information, calculation algorithms. Embedded Software reside in read-only memory and isused to control products and systems for consumer andindustrial markets. (e.g. keypad control for microwaveoven).
8/14/2019 Part 1 - Product and Process Final
9/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /4
Software Applications
Personal Computer Software word processors,spreadsheets, graphics, multimedia, etc. Web-based Software web pages. Artificial Intelligence Software uses non-numerical
algorithms to solve complex problems that are notamenable to computation or straightforward analysis.
8/14/2019 Part 1 - Product and Process Final
10/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /5
Software Myths
Myth -We already have a book that's full of standardsand procedures for building software, won't that providemy people with everything they need to know?
Reality The book of standards may very well exist, butis it used? Are software practitioners aware of itsexistence? Does it reflect modern software engineeringpractice? Is it complete? Is it streamlined to improve timeto delivery while still maintaining a focus on quality? Inmany cases, the answer to all of these questions is "no."
8/14/2019 Part 1 - Product and Process Final
11/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /6
Software Myths
Myth -My people have state-of-the-art software development tools,after all, we buy them the newest computers.
Reality It takes much more than the latest model mainframe,workstation, or PC to do high-quality software development.Computer-aided software engineering (CASE) tools are moreimportant than hardware for achieving good quality and productivity,yet the majority of software developers still do not use themeffectively.
8/14/2019 Part 1 - Product and Process Final
12/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /7
Software Myths
Myth -If we get behind schedule, we can add more programmersand catch up (sometimes called the Mongolian horde concept).
Reality Software development is not a mechanistic process likemanufacturing. In the words of Brooks [BRO75]: "adding people to alate software project makes it later." At first, this statement may seemcounterintuitive. However, as new people are added, people whowere working must spend time educating the newcomers, therebyreducing the amount of time spent on productive development effort.People can be added but only in a planned and well-coordinatedmanner.
8/14/2019 Part 1 - Product and Process Final
13/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /8
Software Myths
Myth -If I decide to outsource the software project to a third party, Ican just relax and let that firm build it.
Reality If an organization does not understand how to manageand control software projects internally, it will invariably strugglewhen it outsources software projects.
8/14/2019 Part 1 - Product and Process Final
14/80
8/14/2019 Part 1 - Product and Process Final
15/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /10
Software Myths
Myth -Project requirements continually change, but change can beeasily accommodated because software is flexible.
Reality It is true that software requirements change, but theimpact of change varies with the time at which it is introduced.
8/14/2019 Part 1 - Product and Process Final
16/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /11
Software Myths
Myth -Once we write the program and get it to work, our job is done. Reality Someone once said that "the sooner you begin 'writing
code', the longer it'll take you to get done." Industry data ([LIE80],[JON91], [PUT97]) indicate that between 60 and 80 percent of alleffort expended on software will be expended after it is delivered tothe customer for the first time.
8/14/2019 Part 1 - Product and Process Final
17/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /12
Software Myths Myth -Until I get the program "running" I have no way of assessing
its quality.
Reality One of the most effective software quality assurancemechanisms can be applied from the inception of a projecttheformal technical review. Software reviews (described in Chapter 8)are a "quality filter" that have been found to be more effective thantesting for finding certain classes of software defects.
8/14/2019 Part 1 - Product and Process Final
18/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /13
Software Myths Myth -The only deliverable work product for a successful project is
the working program.
Reality A working program is only one part of a softwareconfiguration that includes many elements. Documentation providesa foundation for successful engineering and, more important,guidance for software support.
8/14/2019 Part 1 - Product and Process Final
19/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /14
Software Myths Myth - Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down.
Reality Software engineering is not about creating documents. It isabout creating quality. Better quality leads to reduced rework. Andreduced rework results in faster delivery times.
8/14/2019 Part 1 - Product and Process Final
20/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /15
Brainstorming Give examples of software applications.
Business Education Etc.
8/14/2019 Part 1 - Product and Process Final
21/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product /16
Summary
Software has become the key element in the evolution of computer-based systems and products. Over the past 50 years, software hasevolved from a specialized problem solving and information analysis toolto an industry in itself. But early programming culture and history havecreated a set of problems that persist today. Software has become thelimiting factor in the continuing evolution of computer based systems.
Software is composed of programs, data, and documents. Each of theseitems comprises a configuration that is created as part of the softwareengineering process. The intent of software engineering is to provide aframework for building software with higher quality.
8/14/2019 Part 1 - Product and Process Final
22/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
CHAPTER I The Product
Review: Define Software Describe the characteristics of a software Give Examples of a software application Distinguish the facts from fictions in Software
Development Cite scenarios and identify the appropriate software to be
used.
8/14/2019 Part 1 - Product and Process Final
23/80
Software Engineering
Part I The Product and the Process
PART I PART II PART III PART IV PART VINTRODUCTION
END OF CHAPTER I The Product
Assignment: What is a Software Process? Give examples of Software Process Models
8/14/2019 Part 1 - Product and Process Final
24/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Objectives: To define Software Process
To describe the importance of Software Process
To be able to list down different Software Process Models
To be able to compare and contrast the different Software ProcessModels
8/14/2019 Part 1 - Product and Process Final
25/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process/2
What is a Software Process?
A framework for the tasks that are required to build a high-quality software.
Defines the approach that is taken as software isengineered.
8/14/2019 Part 1 - Product and Process Final
26/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 1
Process, Methods and Tools Software engineering is a layered technology, and like any
engineering approach, rests on an organizational commitment toquality
8/14/2019 Part 1 - Product and Process Final
27/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 2
Process Layer
Foundation of software engineering. Defines a framework for a set of key process areas that must be
established for effective delivery of software engineeringtechnology.
8/14/2019 Part 1 - Product and Process Final
28/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 3
Methods Layer
Provide the technical how-tos for building software. Tasks include requirements analysis, design, program
construction, testing, and support
8/14/2019 Part 1 - Product and Process Final
29/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 4
Tools Layer
Provide automated or semi-automated support for the process andthe methods
8/14/2019 Part 1 - Product and Process Final
30/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 5
Generic Characteristics of a Software Process:
Definition identification of key requirements of thesystem and software. Answers the question What?
Development describe the way things are done.Answers the question How?
Support Covers the steps of the Definition andDevelopment phases but in the context of a finishedproduct (existing software). Focuses on Change.
8/14/2019 Part 1 - Product and Process Final
31/80
Software Engineering
Part I The Product and the Process
CHAPTER II - The Process
Software Engineering A Layered Technology / 6
The Definition Phase: What information is to be processed? What function and performance are desired?
What system behavior can be expected?
What interfaces are to be established?
What design constraints exist?
What validation criteria are required to define a successful system?
8/14/2019 Part 1 - Product and Process Final
32/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 7
3 Major tasks in the Definition Phase:
1. System / Information Engineering (Ch 10)
2. Software Project Planning (Ch 3,5,6,7)
3. Requirements Analysis (Ch 11,12,21)
8/14/2019 Part 1 - Product and Process Final
33/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 8
The Development Phase: How data are to be structured? How function is to be implemented within a software architecture?
How procedural details are to be implemented?
How interfaces are to be characterized?
How the design will be translated into a programming language?
How testing will be performed?
8/14/2019 Part 1 - Product and Process Final
34/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 9
3 Major Tasks in the Development Phase:
1. Software Design (Ch 13, 16, 22)
2. Code Generation
3. Software Testing (Ch 17,18, 23)
8/14/2019 Part 1 - Product and Process Final
35/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Engineering A Layered Technology / 10
4 types of Changes in the Support Phase: Correction Uncover Defects
Adaptation Adjust to external environment changes
Enhancement Additional functions that provide benefit
Prevention Make Correction, Adaptation, and Enhancementeasy to do when a change occurs that might make the software
deteriorate.
8/14/2019 Part 1 - Product and Process Final
36/80
P I Th P d d h P
8/14/2019 Part 1 - Product and Process Final
37/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
The Software Process / 1
Common Process Framework
P t I Th P d t d th P
8/14/2019 Part 1 - Product and Process Final
38/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
The Software Process / 2
Capability Maturity Model
5 Point Grading Scheme in assessing an organizations state ofprocess maturity
Level 1 Initial
Level 2 Repeatable
Level 3 Defined
Level 4 Managed
Level 5 - Optimizing
P t I Th P d t d th P
8/14/2019 Part 1 - Product and Process Final
39/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 1
What is a Software Process Model?
Development Strategy that encompasses the differentlayers that make up Software Engineering (Process,Methods, Tools).
P t I Th P d t d th P
8/14/2019 Part 1 - Product and Process Final
40/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 2
Phases of a Problem Solving Loop
P t I Th P d t d th P
8/14/2019 Part 1 - Product and Process Final
41/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 3
Phases within phases of a Problem Solving Loop
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
42/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 4
Linear Sequential Model
Prototyping Model RAD Model
Other (Evolutionary Software Process Models) Incremental Model
Spiral Model WINWIN Spiral Model
Concurrent Development Model
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
43/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 5
Linear Sequential Model
Also called Classic Lifecycle/Waterfall Model Activities:
System/Information engineering and modeling Software Requirements Analysis Design
Code Generation Testing Support
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
44/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 6
Linear Sequential Model
8/14/2019 Part 1 - Product and Process Final
45/80
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
46/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 8
Linear Sequential Model Activities
Software Requirements Analysis Requirements gathering is intensified and focused primarily on
software.
Requirements for both system and software are documented andreviewed with the customer.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
47/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 9
Linear Sequential Model Activities
Design Focuses on 4 distinct attributes of a program
Data Structure
Software Architecture
Interface representations
Procedural (Algorithmic) details Documented
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
48/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 10
Linear Sequential Model Activities
Code Generation Translate design into machine readable form.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
49/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 11
Linear Sequential Model Activities
Testing Ensure all statements have been tested.
Uncover errors
Ensure that a defined input will produce actual results that agreewith required results.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
50/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 12
Linear Sequential Model Activities
Support Accommodate Change
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
51/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 13
Criticisms on Linear Sequential Model Real projects rarely follow the sequential flow that the model
proposes. Although the linear model can accommodate iteration, itdoes so indirectly. As a result, changes can cause confusion as theproject team proceeds.
It is often difficult for the customer to state all requirementsexplicitly. The linear sequential model requires this and hasdifficulty accommodating the natural uncertainty that exists at thebeginning of many projects.
The customer must have patience. A working version of theprogram(s) will not be available until late in the project time-span. Amajor blunder, if undetected until the working program is reviewed,can be disastrous.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
52/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 14
Prototyping Model
Prototype serves as a mechanism for identifying softwarerequirements.
Activities: Requirements Gathering
Quick Design
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
53/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models /15
Prototyping Model
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
54/80
Software Engineering
Part I The Product and the Process
CHAPTER II The Process
Software Process Models / 16
Criticisms on the Prototyping Model
The customer sees what appears to be a working version of thesoftware, unaware that the prototype is held together with chewinggum and baling wire, unaware that in the rush to get it working noone has considered overall software quality or long-termmaintainability. When informed that the product must be rebuilt sothat high levels of quality can be maintained, the customer criesfoul and demands that "a few fixes" be applied to make the
prototype a working product. Too often, software developmentmanagement relents.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
55/80
Software Engineering
CHAPTER II The Process
Software Process Models / 17
Criticisms on the Prototyping Model
The developer often makes implementation compromises in orderto get a prototype working quickly. An inappropriate operatingsystem or programming language may be used simply because itis available and known; an inefficient algorithm may beimplemented simply to demonstrate capability. After a time, thedeveloper may become familiar with these choices and forget allthe reasons why they were inappropriate. The less-than-ideal
choice has now become an integral part of the system.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
56/80
Software Engineering
CHAPTER II The Process
Software Process Models / 18
RAD (Rapid Application Development
is an incremental software development process modelthat emphasizes an extremely short development cycle.
Activities: Business Modeling
Data Modeling
Process Modeling
Application Generation
Testing and Turnover
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
57/80
Software Engineering
CHAPTER II The Process
Software Process Models / 19
RAD Activities
Business Modeling What information drives the business process?
What information is generated?
Who generates it?
Where does the information go?
Who processes it?
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
58/80
Software Engineering
CHAPTER II The Process
Software Process Models / 20
RAD Activities
Data Modeling The information flow defined as part of the business modeling
phase is refined into a set of data objects that are needed tosupport the business. The characteristics (called attributes) of eachobject are identified and the relationships between these objectsdefined.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
59/80
Software Engineering
CHAPTER II The Process
Software Process Models / 21
RAD Activities
Process Modeling The data objects defined in the data modeling phase are
transformed to achieve the information flow necessary toimplement a business function. Processing descriptions arecreated for adding, modifying, deleting, or retrieving a data object.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
60/80
Software Engineering
CHAPTER II The Process
Software Process Models / 22
RAD Activities
Application Generation RAD assumes the use of fourth generation techniques (Section
2.10). Rather than creating software using conventional thirdgeneration programming languages the RAD process works toreuse existing program components (when possible) or createreusable components (when necessary). In all cases, automated
tools are used to facilitate construction of the software.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
61/80
Software Engineering
CHAPTER II The Process
Software Process Models / 23
RAD Activities
Testing and Turnover Since the RAD process emphasizes reuse, many of the program
components have already been tested. This reduces overall testingtime. However, new components must be tested and all interfacesmust be fully exercised.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
62/80
Software Engineering
CHAPTER II The Process
Software Process Models / 24
RAD Drawbacks
For large but scalable projects, RAD requires sufficienthuman resources to create the right number of RADteams.
RAD requires developers and customers who arecommitted to the rapid-fire activities necessary to get a
system complete in a much abbreviated time frame. Ifcommitment is lacking from either constituency, RADprojects will fail.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
63/80
Software Engineering
CHAPTER II The Process
Software Process Models / 25
RAD Drawbacks
Not all types of applications are appropriate for RAD. If a systemcannot be properly modularized, building the componentsnecessary for RAD will be problematic. If high performance is anissue and performance is to be achieved through tuning theinterfaces to system components, the RAD approach may notwork.
RAD is not appropriate when technical risks are high. This occurswhen a new application makes heavy use of new technology orwhen the new software requires a high degree of interoperabilitywith existing computer programs.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
64/80
Software Engineering
CHAPTER II The Process
Software Process Models / 26
Incremental Model
Linear Sequential + Prototyping
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
65/80
Software Engineering
CHAPTER II The Process
Software Process Models / 27
Incremental Model
Focuses on delivery of an operational product with each increment.
Example: Word Processing Application
1st Increment: basic file management, editing
2nd Increment: more sophisticated editing
3rd Increment: Spelling and Grammar
Prototyping paradigm can be incorporated within each increment.
Useful when staffing is unavailable for a complete implementation by abusiness deadline that has been established for the project.
Part I The Product and the Process
8/14/2019 Part 1 - Product and Process Final
66/80
Software Engineering
CHAPTER II The Process
Software Process Models / 28
Spiral Model
8/14/2019 Part 1 - Product and Process Final
67/80
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
68/80
Software Engineering
CHAPTER II The Process
Software Process Models /30
Spiral Model
Addresses Customer Communication Realistic approach in large scale systems and software.
Demands a risk assessment expertise and relies on it forsuccess.
Not widely used as the other paradigms.
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
69/80
Software Engineering
CHAPTER II The Process
Software Process Models / 31
WINWIN Spiral Model
Elicit project requirements from the customer
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
70/80
Software Engineering
CHAPTER II The Process
Software Process Models / 32
WINWIN Spiral Model
Added Activities: Identification of the system or subsystems key stakeholders.
Determination of the stakeholders win conditions.
Negotiation of the stakeholders win conditions to reconcile theminto a set of win-win conditions for all concerned (including the
software project team).
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
71/80
Software Engineering
CHAPTER II The Process
Software Process Models / 33
WINWIN Spiral Model
Anchor Points: Life Cycle Objectives (LCO), defines a set of objectives for
each major software engineering activity. Life Cycle Architecture (LCA) establishes objectives that must
be met as the system and software architecture is defined. Initial Operational Capability (IOC) Represents a set of
objectives associated with the preparation of the software for
installation/distribution, site preparation prior to installation, andassistance required by all parties that will use or support thesoftware.
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
72/80
Software Engineering
CHAPTER II The Process
Software Process Models / 34
Concurrent Development Model
Sometimes called ConcurrentEngineering
is often used as the paradigm for thedevelopment of client/server applications.
is applicable to all types of softwaredevelopment and provides an accurate
picture of the current state of a project.
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
73/80
Software Engineering
CHAPTER II The Process
Component-Based Development / 1
Incorporates many of the characteristics of the spiralmodel.
model composes applications from prepackaged softwarecomponents (called classes).
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
74/80
Software Engineering
CHAPTER II The Process
Component Based Development / 2
Identification of candidate classes.
The class library is searched to determine if thesecandidate classes exist.
If candidate classes dont exist, they are engineered usingobject oriented methods.
8/14/2019 Part 1 - Product and Process Final
75/80
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
76/80
Software Engineering
CHAPTER II The Process
Formal Methods Model
Enable a software engineer to specify, develop, and verifya computer-based system by applying a rigorous,
mathematical notation. Defect Prevention
Part I The Product and The Process
8/14/2019 Part 1 - Product and Process Final
77/80
Software Engineering
CHAPTER II The Process
Fourth Generation Techniques (4GT)
Enables the software engineer to specify somecharacteristic of software at a high level.
The tool then automatically generates source code basedon the developer's specification.
Part I - The Product and The Process
CHAPTER II Th P
8/14/2019 Part 1 - Product and Process Final
78/80
Software Engineering
CHAPTER II The Process
Fourth Generation Techniques (4GT) / 2
Currently, a software development environment thatsupports the 4GT paradigm includes some or all of thefollowing tools: nonprocedural languages for database query, report generation, data manipulation, screen interaction and definition, code generation; high-level graphics capability; spreadsheet capability, automated generation of HTML and similar languages used for
Web-site creation using advanced software tools.
Part I The Product and The Process
CHAPTER II Th P
8/14/2019 Part 1 - Product and Process Final
79/80
Software Engineering
CHAPTER II The Process
Summary
Software engineering is a discipline that integratesprocess, methods, and tools for the development of
computer software. A number of different process modelsfor software engineering have been proposed, eachexhibiting strengths and weaknesses, but all having aseries of generic phases in common.
Part I The Product and The Process
CHAPTER II Th P
8/14/2019 Part 1 - Product and Process Final
80/80
Software Engineering
CHAPTER II The Process
Review:
Define Software Process
Describe the importance of Software Process
List down different Software Process Models