Lecture#01-04 Process Models
Lecture#01-04 Process Models
Lecture#01-04
– Evolutionary,
– Prototyping
– Spiral model,
– Agile models
• Security:
– Security of a software is the degree of its capability to protect its
services and data from unauthorized users
– Authentication (to log-in) and authorization (to use only certain
services) are used to protect the services and encryption to protect
the data
Object-Oriented Systems Design: Process
12/18/2020 13
Model
Attributes of good software
• Availability
– Software packages contain many modules, which are
integrated and work together; e.g Web servers, App servers,
DBMS servers, application software modules, OS, N/W layers
put together offer Infosys Finacle based banking services!
– Availability refers to the percentage time that such as a
complex software package is continuously available measured
over a 100 units of time!
– Many banks of reputation demand 99.9% availability for every
1000 days from the IT service provider!
• Portability
– Portability of a software is the degree of ease with which one
can install and useObject-Oriented
that software in different environments;
Systems Design: Process
12/18/2020 14
Model
Attributes of good software engineering
• Productivity
– Average number of LoC (Line of code) per person taken over the
complete life-cycle of a software project
– well engineered projects eliminate or minimize re-design or re-
coding or re-testing and thereby achieve high productivity;
– use of engineering models, methodologies, standards, tools and
training of personnel etc. contribute towards high productivity;
• Cost
– Appropriate balance between high productivity and high cost is
very essential
– High productivity and low cost is the dream of every software
project manager!
3. Feasibility study
4. System Design
Feasibility
Technical Dimensions Schedule
feasibility feasibility
Object-Oriented Systems Design: Process
12/18/2020 22
Model
Areas of Feasibility study
A. Technical feasibility: determine whether the company has the technical
expertise to handle completion of the project.
• Method of production
– Availability of inputs or raw materials and their quality and prices.
– Availability of markets for outputs
– Various efficiency factors such as the expected increase in one of the additional
production unit.
• Production technique
– Tools and equipment needed for the project
– Construction requirement such as buildings, storage, and roads …etc.
– Requirements of skilled and unskilled labor and managerial and financial labor.
• Project location
– Availability of land (proper acreage and reasonable costs).
– The costs of transporting inputs and outputs to the project's location.
– Availability of various related resources: water or electricity or good roads ...etc.
B. Physical design
• In physical design, the input, output, storage, processing, and recovery
requirements about the system are decided.
– User Interface Design
– Data Design: concerned with how the data is represented and stored within the
system.
– Process Design: concerned with how data moves through the system (DFD)
C. Architectural design
• Design of the system architecture that describes the structure, behavior and
more views of that system and analysis.
Object-Oriented Systems Design: Process
12/18/2020 29
Model
Structured Design
• High-level design:
– Decompose the system into
modules,
– Represent invocation
root
relationships among modules.
query
• Detailed design: order
– Different modules designed in indent
Accept-
Get-order order Process-
order
Object-Oriented Systems Design: Process
12/18/2020 30
Model
Structured Design
• Terminologies:
– Component: part of system that can be isolated for testing
– Fault: bug or defect, is a design or coding mistake that may cause abnormal
component behavior
– Erroneous state: manifestation of a fault during the execution of the system.
Caused by one or more fault and lead to failure
– Failure: deviation between the specification and the actual behavior
– Test case: set of inputs and expected results
Ref: Object-Oriented Software Engineering Using UML, Patterns, and Java, Bernd Bruegge, Allen H. Dutoit 3rd ed.
Object-Oriented Systems Design: Process
Prentice Hall Press
12/18/2020
Model
39
Software Testing Activities
• Component Inspection: The goal of the inspection is to identify defects. In
an inspection, a source code is selected for review and a team is gathered for
an inspection meeting to review the work product. (static verification)
• The "box" approach: describe the point of view that the tester takes
when designing test cases
– White box testing: verifies the internal structures or workings of a program.
– Black box testing: examining functionality without any knowledge of internal
implementation, without seeing the source code. The testers are only aware
of what the software is supposed to do, not how it does it
– Grey box testing: design test cases based on knowledge of internal data
structures and algorithms while executing those tests at the user, or black-box
level. Object-Oriented Systems Design: Process
12/18/2020 https://en.wikipedia.org/wiki/Software_testing#Unit_testing
41
Model
Debugging
• Debugging aims to find the source of already identified defect and to
fix it
– Performed by developers
• Steps in debugging:
– Attempt to reproduce the problem.
– After the bug is reproduced, the input of the program may need to be
simplified to make it easier to debug.
– After the test case is sufficiently simplified, a programmer can use a
debugger tool to examine program states (values of variables, plus the call
stack) and track down the origin of the problem(s).
– Fix the defect
– Test to check if the fix is correct
• Deployment activities
– Release
– Installation and activation
– Deactivation
– Uninstallation
– Update
– Version tracking
Simplest and
Req. Analysis
most intuitive
Design
Coding
Testing
Maintenance
Relative Effort
40
• Among all life cycle phases 30
20
– Maintenance phase consumes maximum
10
effort.
0
Maintnce
Design
Test
Coding
Req. Sp
• Among development phases,
– Testing phase consumes the maximum
effort.
• Technology is understood
52
Object-Oriented Systems Design: Process
12/18/2020
Model
Waterfall Model Phases
• Phases of waterfall model are;
– Requirements analysis and definition
– System and software design
– Implementation and unit testing
– Integration and system testing
– Operation and maintenance
• The main drawback of the waterfall model is the
difficulty of accommodating change after the process
is underway.
• One phase has to be complete before moving onto
the next phase.
Object-Oriented Systems Design: Process
12/18/2020 53
Model
Waterfall model problems
• Inflexible partitioning of the project into distinct
stages makes it difficult to respond to changing
customer requirements.
• Therefore, this model is only appropriate when the
requirements are well-understood and changes will
be fairly limited during the design process.
• Few business systems have stable requirements.
• The waterfall model is mostly used for large systems
engineering projects where a software project is part
of a large systems engineering project.
Object-Oriented Systems Design: Process
12/18/2020 54
Model
Specialized Process Models
• Component based development—the process to apply
when reuse is a development objective
• Formal methods—emphasizes the mathematical
specification of requirements
• AOSD—provides a process and methodological approach
for defining, specifying, designing, and constructing
aspects
• Unified Process—a “use-case driven, architecture-centric,
iterative and incremental” software process closely
aligned with the Unified Modeling Language (UML)
Object-Oriented Systems Design: Process
12/18/2020 55
Model
Object-oriented Life Cycle
• The Object-Oriented approach of Building Systems takes the objects as
the basis.
• First the system to be developed is observed and analyzed and the
requirements are defined as in any other method of system
development.
• The objects in the required system are identified i.e. for a Banking
System, a customer, chequebook, and an account are object.
• The essence of the software development process that consists of
analysis, design, implementation, testing, and refinement is to
transform user’s needs into a software solution that satisfies those
needs.