Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
10 views

Software Engineering 04

Uploaded by

janithadilsham
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Software Engineering 04

Uploaded by

janithadilsham
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Software Engineering: CSC1233

Software Process Models


Lecture 05

Dr. S.M. Vidanagamachchi

Department of Computer Science smv@dcs.ruh.ac.lk 2022 1


Outline: Software Process Models
• Waterfall model
• Prototyping models (Throwaway & Evolutionary models)
• Rapid Application Development
• Incremental development
• The spiral model
• Formal development
• Unified Process
• Agile Process
• Extreme Programming (XP)

Department of Computer Science smv@dcs.ruh.ac.lk 2022 2


Learning Outcomes
At the end of this module, you should be able to:
• Appreciate the need for a defined software
process models
• Be able to describe in detail the main software
process models
• Be able to compare software process models
and choose between them

Department of Computer Science smv@dcs.ruh.ac.lk 2022 3


Formal Development Model

correctness correctness
preserving preserving
transformation transformation

Intermediate Intermediate Intermediate


code
specification (1) specification (2) specification (n)

formal
p p development
record

proof of “security”
of transformation
Department of Computer Science smv@dcs.ruh.ac.lk 2022 4
Formal Development Model
• Formal software specifications are mathematical
entities and mostly analyzed using mathematical
methods
• Consistency and completeness of the specification
can be proved mathematically
• Formal specifications may be automatically
processed
• Software tools can be used to build programs from
formal specifications
Department of Computer Science smv@dcs.ruh.ac.lk 2022 5
Mathematical model for microRNA in Lung Cancer

Department of Computer Science


6
smv@dcs.ruh.ac.lk 2022
Problems: Formal Development Model
• Many software engineers have not been trained in the
techniques required to develop formal specifications

• Customers may be unwilling to fund development


activities that they cannot easily monitor

• Software management is inherently conservative and


is unwilling to adopt new techniques for which payoff
is not obvious

• Most of the effort in specification research has been


concerned with the development of languages and
Department of Computer Science smv@dcs.ruh.ac.lk 2022 7
their theoretical aspects rather than tools and methods
Unified Process
• The Unified Process or Rational Unified Process
(RUP) is a framework for object oriented software
engineering using UML

• This is a use-case driven, architecture centric,


iterative and incremental software development
model

Department of Computer Science smv@dcs.ruh.ac.lk 2022 8


Generic process model communication,

Unified Process planning, modeling, construction, deployment


and software increment

Elaboration
Inception Planning

Communication Modeling

Deployment Construction
Release
Software
Increment Transition Construction
Production

Department of Computer Science smv@dcs.ruh.ac.lk 2022 9


Unified Process
Inception Phase:
• The Inception Phase of UP includes both customer
communication and planning activities.

• By collaborating with the customer and end-users,


business requirements for the software are
identified, a rough architecture for the system is
proposed, and a plan for the iterative, incremental
nature of the project is developed.

Department of Computer Science smv@dcs.ruh.ac.lk 2022 10


Unified Process
Elaboration Phase:
• The Elaboration Phase encompasses the
planning and modeling activities of the generic
process model

• Develop an understanding of the problem domain,


establish an architectural framework for the
system, develop the project plan, and identify
key project risks (use prototypes)

Department of Computer Science smv@dcs.ruh.ac.lk 2022 11


Unified Process
Construction Phase
• Involves parts of design, programming and testing
• Using the architectural model as input, the
construction phase develops or acquires the software
components that will make each use-case operational
for end-users
• As components are developed unit tests are designed
and executed for each component. Integration
testing and acceptance testing are carried out using
use-cases to derive required test cases
Department of Computer Science smv@dcs.ruh.ac.lk 2022 12
Unified Process
Transition Phase
• The Transition Phase of the UP encompasses the
later stages of the generic construction activity
and the first part of the generic deployment
activity

• Software is given to end-users for beta testing.


The software team creates necessary support
information (user manual, installation manual
etc.). At the end of transition phase, the software
increment becomes a usable software release.
Department of Computer Science smv@dcs.ruh.ac.lk 2022 13
Unified Process
Production Phase
• The production phase of the UP coincides with
the deployment activity of the generic process

• During this phase, the on going use of the


software is monitored, support for operating
environment is provided, and defect reports
and requests for change are submitted and
evaluated

Department of Computer Science smv@dcs.ruh.ac.lk 2022 14


Department of Computer Science smv@dcs.ruh.ac.lk 2022 15
Unified Process
Note:
It is likely that at the same time the construction,
transition and production phases are being
conducted, work may have already begun on the
next software increment

This means that the unified process do not occur


in a sequence, but rather with staggered
concurrency
Department of Computer Science smv@dcs.ruh.ac.lk 2022 16
Assignment
• Analyze the work products output in following four
phases of UP and write a report on them (minimum 2
pages- maximum 3 pages).

– Inception
– Elaboration
– Construction
– Transition

Deadline for LMS submission: 30th September 2022


Department of Computer Science smv@dcs.ruh.ac.lk 2022 17
Exercise

• Give examples for formal development and unified


process.

Department of Computer Science smv@dcs.ruh.ac.lk 2022 18


Exercise
Sample Answer
• Formal Development:
– Formal Verification of a processor (eg: Intel Core i7)
– Unmanned aerial systems
– Mathematical model for proteins/RNAs in Lung Cancer

• Unified Process: Any process that can be developed


with OO development
– Business process of a financial institution
– Mobile application development
Department of Computer Science smv@dcs.ruh.ac.lk 2018 19
Software reuse
• In most engineering disciplines, systems are designed
by composing existing components that have been
used in other systems.

• Software engineering has been more focused on


original development, but it is now recognised that
to achieve better software, more quickly and at
lower cost, we need a design process that is based
on systematic software reuse.

• There has been a major switch to reuse-based


development over
Department of Computerthe
Science past 10 years. 2022
smv@dcs.ruh.ac.lk 20
Reuse-based software engineering
• Application system reuse
– The whole of an application system may be reused either
by incorporating it without change into other systems
(COTS reuse) or by developing application families.

• Component reuse
– Components of an application from sub-systems to single
objects may be reused.

• Object and function reuse


– Software components that implement a single well-defined
object or function may be reused.

Department of Computer Science smv@dcs.ruh.ac.lk 2022 21


Benefits of software reuse
Benefit Explanation
Increased dependability Reused software, which has been tried and
tested in working systems, should be more
dependable than new software. Its design and
implementation faults should have been found
and fixed.
Reduced process risk The cost of existing software is already known,
whereas the costs of development are always a
matter of judgment. This is an important factor for
project management because it reduces the
margin of error in project cost estimation. This is
particularly true when relatively large software
components such as subsystems are reused.
Effective use of Instead of doing the same work over and over
specialists again, application specialists can develop
reusable software that encapsulates their
knowledge.
Department of Computer Science smv@dcs.ruh.ac.lk 2022 22
Benefits of software reuse
Benefit Explanation
Standards compliance Some standards, such as user interface
standards, can be implemented as a set of
reusable components. For example, if menus in a
user interface are implemented using reusable
components, all applications present the same
menu formats to users. The use of standard user
interfaces improves dependability because users
make fewer mistakes when presented with a
familiar interface.
Accelerated Bringing a system to market as early as possible
development is often more important than overall development
costs. Reusing software can speed up system
production because both development and
validation time may be reduced.

Department of Computer Science smv@dcs.ruh.ac.lk 2022 23


Problems with reuse
Problem Explanation
Increased If the source code of a reused software system or
maintenance costs component is not available then maintenance costs
may be higher because the reused elements of the
system may become increasingly incompatible
with system changes.
Lack of tool support Some software tools do not support development
with reuse. It may be difficult or impossible to
integrate these tools with a component library
system. The software process assumed by these
tools may not take reuse into account. This is
particularly true for tools that support embedded
systems engineering, less so for object-oriented
development tools.
Finding, Software components have to be discovered in a
understanding, and library, understood and, sometimes, adapted to work
adapting reusable in a new environment. Engineers must be reasonably
components confident of finding a component in the library before
they include a component search as part of their
normal development process.
Department of Computer Science smv@dcs.ruh.ac.lk 2022 24
Exercise
1. The following are initial requirements specified by some customers.
Identify the most suitable process models for these software
projects.
(a) “ I need to develop a simple library system for my school. I know
the requirements very well. The system is not urgent.”
(b) “I need to develop a management information system for my
organisation,. I may use it for all the branches in several location in
Sri Lanka. I need the HR management module first“”.
(c ) “ I need to develop a software system to control a space shuttle”

Department of Computer Science smv@dcs.ruh.ac.lk 2022 25


Thank you

Department of Computer Science smv@dcs.ruh.ac.lk 2022 26


Major work products produced for each UP phases

Inception Phase Elaboration Phase


Use-case model
Vision document
Initial use-case model Requirements functional, non-functional
Initial risk assessment Analysis model
Project Plan
Business model
Software architecture
Prototypes Preliminary design model
Revised risk list, revised prototypes

Construction Phase
Transition Phase

Design model
Delivered software increment
Software components
Beta test reports
Integrated software increment
General user feedback
Test cases
Test Plan and Procedures
Support documentation

Department of Computer Science smv@dcs.ruh.ac.lk 2022 27

You might also like