MC4102 OOSE UNIT - I
MC4102 OBJECT ORIENTED SOFTWARE ENGINEERING
UNIT I SOFTWARE DEVELOPMENT AND PROCESS MODELS 9
Introduction to Software Development – Challenges – An Engineering Perspective
– Object Orientation – Software Development Process – Iterative Development
Process – Process Models – Life Cycle Models – Unified Process – Iterative and
Incremental – Agile Processes.
UNIT II MODELING OO SYSTEMS 9
Object Oriented Analysis (OOA / Coad-Yourdon), Object Oriented Design
(OOD/Booch), Hierarchical Object Oriented Design (HOOD), Object Modeling
Technique (OMT) – Requirement Elicitation – Use Cases – SRS Document –
OOA - Identification of Classes and Relationships, Identifying State and Behavior
– OOD - Interaction Diagrams – Sequence Diagram – Collaboration Diagrams -
Unified Modeling Language and Tools.
UNIT III DESIGN PATTERNS 9
Design Principles – Design Patterns – GRASP – GoF – Dynamic Object Modeling
– Static Object Modeling.
UNIT IV SYSTEM TESTING 9
Software testing: Software Verification Techniques – Object Oriented Checklist :-
Functional Testing – Structural Testing – Class Testing – Mutation Testing –
Levels of Testing – Static and Dynamic Testing Tools - Software Maintenance –
Categories – Challenges of Software Maintenance – Maintenance of Object
Oriented Software – Regression Testing
UNIT V SOFTWARE QUALITY AND METRICS 9
Need of Object Oriented Software Estimation – Lorenz and Kidd Estimation – Use
Case Points Method – Class Point Method – Object Oriented Function Point –
Risk Management – Software Quality Models – Analyzing the Metric Data –
Metrics for Measuring Size and Structure – Measuring Software Quality - Object
Oriented Metrics
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 1
MC4102 OOSE UNIT - I
REFERENCES:
1. Yogesh Singh, RuchikaMalhotra, “ Object – Oriented Software Engineering”,
PHI Learning Private Limited ,First edition,2012
2. Ivar Jacobson. Magnus Christerson, PatrikJonsson, Gunnar Overgaard, “Object
Oriented Software Engineering, A Use Case Driven Approach”, Pearson
Education, Seventh Impression, 2009
3. Craig Larman, “Applying UML and Patterns, an Introduction to Object-
Oriented Analysis and Design and Iterative Development”, Pearson Education,
Third Edition, 2008.
4. Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim
Conallen, Kelli A. Houston, “Object Oriented Analysis & Design with
Applications, Third Edition, Pearson Education,2010
5. Roger S. Pressman, “Software Engineering: A Practitioner’s Approach, Tata
McGraw-Hill Education, 8th Edition, 2015
SUGGESTED ACTIVITIES:
1. Discuss the different phases in any domain like Health Monitoring System using
extreme programming
2. Describe Business Requirement Specification (BRS) and SRS (Software
Requirement Specification) for any Project like Automatic Intelligent Plant
Watering System .using any one of requirement analysis tool
3. Identify the classes , relationship between classes and draw standard UML
diagrams using any one UML modeling tool (eg: ArgoUML that supports UML
1.4 and higher)
4. for a system (eg: Conference Management System, student management system)
5. Test the above UML for all the scenarios identified using Selenium /JUnit /
Apache JMeter
6. Perform COCOMO estimation for Book Management System to find effort and
development time considering all necessary cost estimation factors. (Use
GanttPRO Software for estimation)
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 2
MC4102 OOSE UNIT - I
UNIT I SOFTWARE DEVELOPMENT AND PROCESS MODELS 9
Introduction to Software Development – Challenges – An Engineering Perspective
– Object Orientation – Software Development Process – Iterative Development
Process – Process Models – Life Cycle Models – Unified Process – Iterative and
Incremental – Agile Processes.
Introduction to Software Engineering (SE)
Software is more than just a program code.
A program is an executable code, which serves some computational purpose.
Software is considered to be a collection of executable programming code,
associated libraries and documentations.
Software, when made for a specific requirement is called software product.
Engineering on the other hand, is all about developing products, using well-
defined, scientific principles and methods.
Software Engineering as an engineering branch associated with the development
of software product using well-defined scientific principles, methods and
procedures.
The outcome of software engineering is an efficient and reliable software product.
The overall objectives of software engineering are significantly increasing software
productivity (P) and quality (Q) while reducing software production and operating
costs (C) and time to market (T). These objectives are abbreviated as PQCT.
Software Engineering allows us to apply computer science concepts in the
development and maintenance of software. Software engineering is to be studied in
order to make the development process of various features of the software more
efficient and effective.
Introduction to Object Oriented Software Engineering
Software engineering definition, object oriented software engineering can be
referred to as a software design concept that is used in object oriented
programming for the purpose of designing software models.
Object-Oriented Software Engineering (OOSE) is a software design technique that
is used in software design in object-oriented programming.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 3
MC4102 OOSE UNIT - I
OOSE is developed by Ivar Jacobson in 1992. OOSE is the first object-oriented
design methodology that employs use cases in software design. OOSE is one of the
precursors of the Unified Modeling Language (UML), such as Booch and OMT.
Using object oriented software engineering techniques, we design the classes
(objects), functions, methods etc that are required for the development of any
software.
Oose is a design technique and doesn’t include any implementation of code.
It includes requirement, analysis, design, implementation and sometimes a
testing model.
Object oriented methodology employs the use case of OOSE in software design.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 4
MC4102 OOSE UNIT - I
Introduction to Software Development
Software Development refers to a set of computer science activities dedicated to
the process of creating, designing, deploying and supporting software.
Software itself is the set of instructions or programs that tell a computer what to do.
It is independent of hardware and makes computers programmable.
There are three basic types:
System Software.
Programming Software.
Application Software.
Embedded Software.
System Software to provide core functions such as operating systems, disk
management, utilities, hardware management and other operational necessities.
Programming Software to give programmers tools such as text editors,
compilers, linkers, debuggers and other tools to create code.
Application Software (applications or apps) to help users perform tasks. Office
productivity suites, data management software, media players and security
programs are examples. Applications also refers to web and mobile applications
like those used to shop on Amazon.com, socialize with Facebook or post pictures
to Instagram.1
Embedded Software. Embedded systems software is used to control machines
and devices not typically considered computers — telecommunications networks,
cars, industrial robots and more. These devices, and their software, can be
connected as part of the Internet of Things (IoT).
Software development is primarily conducted by programmers, software engineers
and software developers. These roles interact and overlap, and the dynamics
between them vary greatly across development departments and communities.
Programmers, or coders - write source code to program computers for specific
tasks like merging databases, processing online orders, routing communications,
conducting searches or displaying text and graphics. Programmers typically
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 5
MC4102 OOSE UNIT - I
interpret instructions from software developers and engineers and use
programming languages like C++ or Java to carry them out.
Software engineers - apply engineering principles to build software and systems
to solve problems. Software engineering solutions adhere to the scientific method
and must work in the real world, as with bridges or elevators. Increasingly more
intelligent with the addition of microprocessors, sensors and software. Software
development must be coordinated with the product’s mechanical and electrical
development work.
Software Developers - have a less formal role than engineers and can be closely
involved with specific project areas — including writing code. At the same time,
they drive the overall software development life cycle — including working across
functional teams to transform requirements into features, managing development
teams and processes, and conducting software testing and maintenance.
An important distinction is Custom Software Development as opposed to
commercial software development. Custom software development is the process of
designing, creating, deploying and maintaining software for a specific set of users,
functions or organizations.
Challenges in Software Development Process Model
1. Lack of Guidance from Management
2. Difficulty Estimating Time and Resources
3. Lack of Resources for the Software Development Process
4. Defining the Requirements of the Software Development Projects
5. Miscommunication with Customers/Stakeholders
6. Strict Time Constrains
7. The Complexity of Software Projects
8. Finding Qualified Talents
9. Testing and Debugging
10. Maintaining the Competitive Edge
Software Engineering Perspective/ Paradigm
Software engineering paradigm is refers to the method and steps, which are taken
while design the software. It consists of three parts.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 6
MC4102 OOSE UNIT - I
Software development paradigm
Software design paradigm
Programming paradigm
Software development paradigm - Software development paradigm pertains all the
engineering concepts which includes Requirements, software design,
programming.
Software design paradigm - Software design paradigm is a part of software
development. It includes design, programming, maintenance.
Programming paradigm - Programming paradigm which concerns about the
programming aspect of software development. This includes coding, testing,
integration.
Object Orientation
o Object Orientation is a bottom up approach of solving real world problem
where individual objects are combined or assembled to provide the solutions
of the underlying problem.
o In object orientation instead of writing subroutines the programmer can
assemble the object and generate the desired result.
o An object is a physical instance of the class that has the attributes defined in
class and it can execute the methods defined in the class.
Example
if Student is a class with following Attributes and Methods defined below:
class Student
{
Attributes:
RollNo, Name, Batch, Year, CollegeCode, ContactNo
Methods:
attendClass(), submitAssignments(), takeExam(), submitFees()
}
The object of the above class will have all of the above attributes and it will be able
to perform all the above methods. For a college X, Y, Z all are the objects of
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 7
MC4102 OOSE UNIT - I
Student class. An Engineering College assembles the objects of various classes like
Faculty, Books, Management and HOD for providing MCA., to the students. Thus
all colleges follow the concept of Object Orientation.
The following figure illustrates the use of object orientation:
Student X wants to make a call to his friend to confirm the exam schedule. Mobile
class defines the attributes and methods for making a call, but he can’t make a call
with Mobile class he will require an object of Mobile class to make a call.
Conclusion:
From above discussion it can be summarized that the object orientation
revolves around two concepts class and objects. Class simply defines a template or
a logical blueprint with attributes and methods and the functionality defined in class
can be executed with the help of an Object.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 8
MC4102 OOSE UNIT - I
Software Development Process
Introduction
Software Development Process
Introduction to Software Development Process
Software engineering focuses on three tracks of activities as exhibits. These
activities take place simultaneously throughout the software life cycle.
Software Development Process - A software development process transforms the
initial system concept into the operational system running in the target
environment.It identifies the business needs, conducts a feasibility study, and
formulates the requirements or capabilities that the system must deliver.
It also designs, implements, tests, and deploys the system to the target environment.
Software Quality Assurance - Software quality assurance (SQA) ensures that the
development activities are performed properly, and the software artifacts produced
by the development activities meet the software requirements and desired quality
standards.
Software Project Management - Software project management overseas the control
and administration of the development and SQA activities. Project management
activities include effort estimation. Project planning and scheduling, risk
management, and project administration, among others.
These activities ensure that the software system is delivered on time and within
budget.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 9
MC4102 OOSE UNIT - I
Software Development Process :
A software development process is often called a software process. The need for a
process is similar to custom home construction and many others major
undertakings.
The activities of custom home construction include acquisition of home buyer
requirements, custom home design, build, inspection, and delivery.
A software process consists of a series of phases of activities performed to produce
the software system.
In some cases, the software system is a part of a larger system.
Software Process Models
Software
Process
Software Process.
Activities of Software Process.
Software Process Models.
Types of Software Process Models.
Software :
The term software specifies to the set of computer programs, procedures and
associated documents (Flowcharts, manuals, etc.) that describe the program and
how they are to be used.
Process :
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 10
MC4102 OOSE UNIT - I
A process is the sequence of steps executed to achieve a goal. A process is defined
by cycles. Similar to a project, a process also has a beginning, middle, and end;
however, this cycle repeats itself over an average period of time.
Software Process :
A software process is the set of activities and associated outcome that produce a
software product. Software engineers mostly carry out these activities. These are
four key process activities, which are common to all software processes.
Activities of Software Process :
Software Specifications : The functionality of the software and constraints on its
operation must be defined.
Software Development : The software to meet the requirement must be produced.
Software Validation : The software must be validated to ensure that it does what
the customer wants.
Software Evolution : The software must evolve to meet changing client needs.
Software Process Models :
Software process models can be described as an abstract representation of any
software process, having the following specifications –
Products – A product can be described as the outcome of a process activity.
Roles – Responsibilities of the people, or team involved in a process.
Pre and Post Conditions – Statements that are true before and after the process
respectively.
Types of Software Process Models :
Waterfall Model – It is a plan driven model having different or separate phases of
software process activities. (requirements, design and implementation,validation,
evolution).
Incremental Development – The software is developed as a series of different
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 11
MC4102 OOSE UNIT - I
versions or increments. Each version adds a specific functionality to the software.
Integration and Configuration – Integrates and configures the already developed
components to develop a final product. Avoids developing components from
scratch.
Software Development Life Cycle Model
SDLC is a process followed for a software project, within a software organization.
It consists of a detailed plan describing how to develop, maintain, replace and alter
or enhance specific software. The life cycle defines a methodology for improving
the quality of software and the overall development process.
The following figure is a graphical representation of the various stages of a typical
SDLC.
A typical Software Development Life Cycle consists of the following stages −
Stage 1: Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in SDLC. It is
performed by the senior members of the team with inputs from the customer, the
sales department, market surveys and domain experts in the industry. This
information is then used to plan the basic project approach and to conduct product
feasibility study in the economical, operational and technical areas.
Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage. The outcome of the
technical feasibility study is to define the various technical approaches that can be
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 12
MC4102 OOSE UNIT - I
followed to implement the project successfully with minimum risks.
Stage 2: Defining Requirements
Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or the
market analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be
designed and developed during the project life cycle.
Stage 3: Designing the Product Architecture
SRS is the reference for product architects to come out with the best architecture for
the product to be developed. Based on the requirements specified in SRS, usually
more than one design approach for the product architecture is proposed and
documented in a DDS - Design Document Specification.
This DDS is reviewed by all the important stakeholders and based on various
parameters as risk assessment, product robustness, design modularity, budget and
time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along
with its communication and data flow representation with the external and third
party modules (if any). The internal design of all the modules of the proposed
architecture should be clearly defined with the minutest of the details in DDS.
Stage 4: Building or Developing the Product
In this stage of SDLC the actual development starts and the product is built. The
programming code is generated as per DDS during this stage. If the design is
performed in a detailed and organized manner, code generation can be
accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate
the code. Different high level programming languages such as C, C++, Pascal, Java
and PHP are used for coding. The programming language is chosen with respect to
the type of software being developed.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 13
MC4102 OOSE UNIT - I
Stage 5: Testing the Product
This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC. However, this stage
refers to the testing only stage of the product where product defects are reported,
tracked, fixed and retested, until the product reaches the quality standards defined in
the SRS.
Stage 6: Deployment in the Market and Maintenance
Once the product is tested and ready to be deployed it is released formally in the
appropriate market. Sometimes product deployment happens in stages as per the
business strategy of that organization. The product may first be released in a limited
segment and tested in the real business environment (UAT- User acceptance
testing).
Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the
market, its maintenance is done for the existing customer base.
Software Development Life Models (SDLC)
There are various software development life cycle models defined and designed
which are followed during the software development process. These models are
also referred as Software Development Process Models". Each process model
follows a Series of steps unique to its type to ensure success in the process of
software development.
Following are the most important and popular SDLC models followed in the
industry:
1. Classical Waterfall Model
2. Iterative Waterfall Model
3. Prototyping Model
4. Evolutionary Model
5. Spiral Model
6. V Model
7. Incremental Model
8. RAD Model
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 14
MC4102 OOSE UNIT - I
9. Unified Process Model
10. Agile Process Model
1) Classical Waterfall Model
Waterfall model is an example of a Sequential model. In this model, the software
development activity is divided into different phases and each phase consists of
series of tasks and has different objectives.
It is divided into phases and output of one phase becomes the input of the next
phase. It is mandatory for a phase to be completed before the next phase starts. In
short, there is no overlapping in Waterfall model.
In waterfall, development of one phase starts only when the previous phase is
complete. Because of this nature, each phase of waterfall model is quite precise
well defined. Since the phases fall from higher level to lower level, like a waterfall,
It’s named as waterfall model.
Advantages of using Waterfall model
o Simple and easy to understand and use.
o For smaller projects, waterfall model works well and yield the appropriate results.
o Since the phases are rigid and precise, one phase is done one at a time, it is easy to
maintain
o The entry and exit criteria are well defined, so it easy and systematic to proceed with
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 15
MC4102 OOSE UNIT - I
quality.
o Results are well documented.
Disadvantages of using Waterfall model:
Cannot adopt the changes in requirements
It becomes very difficult to move back to the phase. For example, if the application has now
moved to the testing stage and there is a change in requirement, It becomes difficult to go back
and change it.
Delivery of the final product is late as there is no prototype which is demonstrated
intermediately.
For bigger and complex projects, this model is not good as a risk factor is higher.
Not suitable for the projects where requirements are changed frequently.
Does not work for long and ongoing projects.
Since the testing is done at a later stage, it does not allow identifying the challenges and risks in
the earlier phase so the risk mitigation strategy is difficult to prepare.
2) Iterative Waterfall Model
To overcome the major shortcomings of the classical waterfall model, we come up with the
iterative waterfall model.
Here, we provide feedback paths for error correction as & when detected later in a phase. Though
errors are inevitable, but it is desirable to detect them in the same phase in which they occur. If so,
this can reduce the effort to correct the bug.
Advantages of Iterative Waterfall Model
The advantage of this model is that there is a working model of the system at a very early stage of
development which makes it easier to find functional or design flaws. Finding issues at an early
stage of development enables to take corrective measures in a limited budget.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 16
MC4102 OOSE UNIT - I
Disadvantages of Iterative Waterfall Model
The disadvantage with this SDLC model is that it is applicable only to large and bulky software
development projects. This is because it is hard to break a small software system into further
small serviceable increments/modules.
3) Prototyping Model
The basic idea in Prototype model is that instead of freezing the requirements before a design or
coding can proceed, a throwaway prototype is built to understand the requirements.
This prototype is developed based on the currently known requirements. Prototype model is a
software development model. By using this prototype, the client can get an “actual feel” of the
system, since the interactions with prototype can enable the client to better understand the
requirements of the desired system.
Prototyping is an attractive idea for complicated and large systems for which there is no manual
process or existing system to help determining the requirements.
The prototype are usually not complete systems and many of the details are not built in the
prototype. The goal is to provide a system with overall functionality.
Advantages of Prototype model:
Users are actively involved in the development
Since in this methodology a working model of the system is provided, the users get a better
understanding of the system being developed.
Errors can be detected much earlier.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 17
MC4102 OOSE UNIT - I
Quicker user feedback is available leading to better solutions.
Missing functionality can be identified easily
Disadvantages of Prototype model:
Leads to implementing and then repairing way of building systems.
Practically, this methodology may increase the complexity of the system as scope of the system
may expand beyond original plans.
4. EVOLUTIONARY MODEL
It is also called successive versions model or incremental model. At first, a simple working model is
built. Subsequently it undergoes functional improvements & we keep on adding new functions till the
desired system is built.
Applications:
Large projects where you can easily find modules for incremental implementation. Often used
when the customer wants to start using the core features rather than waiting for the full software.
Also used in object oriented software development because the system can be easily portioned into
units in terms of objects.
Advantages:
User gets a chance to experiment partially developed system
Reduce the error because the core modules get tested thoroughly.
Disadvantages:
It is difficult to divide the problem into several versions that would be acceptable to the customer
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 18
MC4102 OOSE UNIT - I
which can be incrementally implemented & delivered.
5. SPIRAL MODEL
The diagrammatic representation of this model appears like a spiral with many loops. The exact
number of loops in the spiral is not fixed. Each loop of the spiral represents a phase of the software
process. For example, the innermost loop might be concerned with feasibility study, the next loop
with requirements specification, the next one with design, and so on. Each phase in this model is split
into four sectors (or quadrants) as shown in figure. The following activities are carried out during each
phase of a spiral model.
First quadrant (Objective Setting)
• During the first quadrant, it is needed to identify the objectives of the phase.
• Examine the risks associated with these objectives.
Second Quadrant (Risk Assessment and Reduction)
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 19
MC4102 OOSE UNIT - I
• A detailed analysis is carried out for each identified project risk.
• Steps are taken to reduce the risks. For example, if there is a risk that the requirements are
inappropriate, a prototype system may be developed.
Third Quadrant (Development and Validation)
• Develop and validate the next level of the product after resolving the identified risks.
Fourth Quadrant (Review and Planning)
• Review the results achieved so far with the customer and plan the next iteration around the spiral.
• Progressively more complete version of the software gets built with each iteration around the spiral.
Circumstances to use spiral model
The spiral model is called a meta model since it encompasses all other life cycle models. Risk
handling is inherently built into this model. The spiral model is suitable for development of
technically challenging software products that are prone to several kinds of risks.
6) V MODEL
The V-model represents a development process that may be considered an extension of the
waterfall model and is an example of the more general V-model. Instead of moving down in a
linear way, the process steps are bent upwards after the coding phase, to form the typical V shape.
The V-Model demonstrates the relationships between each phase of the development life cycle
and its associated phase of testing. The horizontal and vertical axes represent time or project
completeness (left-to-right) and level of abstraction (coarsest-grain abstraction uppermost),
respectively.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 20
MC4102 OOSE UNIT - I
7) Incremental Model
The incremental build model is a method of software development where the model is designed,
implemented and tested incrementally (a little more is added each time) until the product is
finished. It involves both development and maintenance. The product is defined as finished when
it satisfies all of its requirements. Each iteration passes through the requirements, design, coding
and testing phases. And each subsequent release of the system adds function to the previous
release until all designed functionally has been implemented. This model combines the elements
of the waterfall model with the iterative philosophy of prototyping.
8 ) RAD MODEL
Rapid application development was a response to plan-driven waterfall processes, developed in
the 1970s and 1980s, such as the Structured Systems Analysis and Design Method (SSADM).
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 21
MC4102 OOSE UNIT - I
Rapid application development (RAD) is often referred as the adaptive software development.
RAD is an incremental prototyping approach to software development that end users can
produce better feedback when examining a live system, as opposed to working strictly with
documentation. It puts less emphasis on planning and more emphasis on an adaptive process.
RAD may resulted in a lower level of rejection when the application is placed into production,
but this success most often comes at the expense of a dramatic overruns in project costs and
schedule. RAD approach is especially well suited for developing software that is driven by user
interface requirements. Thus, some GUI builders are often called rapid application development
tools.
9) UNIFIED PROCESS MODEL
The Unified Process (UP) is a software development framework used for object-oriented
modeling. The framework is also known as Rational Unified Process (RUP) and the Open
Unified Process (Open UP).
Some of the key features of this process include:
It defines the order of phases.
It is component-based, meaning a software system is built as a set of software components.
There must be well-defined interfaces between the components for smooth communication.
It follows an iterative, incremental, architecture-centric, and use-case driven approach
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 22
MC4102 OOSE UNIT - I
Phases of Unified Process Model
We can represent a unified process model as a series of cycles. Each cycle ends with the release
of a new system version for the customers.
We have four phases in every cycle:
o Inception
o Elaboration
o Construction
o Transition
Inception
The main goal of this phase involves delimiting the project scope. This is where we define why
we are making this product in the first place.
It should have the following:
o What are the key features?
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 23
MC4102 OOSE UNIT - I
o How does this benefit the customers?
o Which methodology will we follow?
o What are the risks involved in executing the project?
o Schedule and cost estimates.
Elaboration
We build the system given the requirements, cost, and time constraints and all the risks involved.
It should include the following:
o Develop with the majority of the functional requirements implemented.
o Finalize the methodology to be used.
o Deal with the significant risks involved.
Construction
This phase is where the development, integration, and testing take place. We build the
complete architecture in this phase and hand the final documentation to the client.
Transition
This phase involves the deployment, multiple iterations, beta releases, and improvements
of the software. The users will test the software, which may raise potential issues. The
development team will then fix those errors.
Conclusion
This method allows us to deal with the changing requirements throughout the
development period. The unified process model has various applications which also makes it
complex in nature.
10) Agile Process Model
The Agile model is a software development process that is based on the iterative development of
software products. The Agile model is a type of incremental model where software is developed
in a rapid incremental cycle.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 24
MC4102 OOSE UNIT - I
Iteration
A short period that lasts from one to four weeks in the Agile process model is referred to as
an iteration.
Each iteration results in small incremental releases, with each release building on previous
functionality. This individual release is thoroughly tested to ensure maintenance of the software
quality.
With Agile, the entire project is divided into smaller parts or sprints to help reduce the overall
project delivery time and minimize risks in the project.
An iteration requires a team to work through a full software development cycle, where planning,
analysis, design, coding, and testing are carried out to produce a working product for a
demonstration to the client.
Advantages of the Agile model
Frequently encourages the delivery of working software.
Adapts to changes in circumstances during the project.
Reduces the total time spent in development.
Constant interactions between clients, developers, and testers.
Pays diligent attention to good design and technical excellence.
Disadvantages of the Agile model
There may be confusion and misinterpretation at any time by different team members due
to the shortage or lack of formal documents.
It can be difficult to maintain the final project due to the lack of proper documentation.
It is difficult to assess the effort required to produce deliverables at the beginning of the
software development process.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 25
MC4102 OOSE UNIT - I
Stages of the Agile model
The stages involved in the Agile model are as follows:
1. Gather requirements
This is the stage where important requirements of the project are defined. This stage explains the
important features and plans the time and effort ahead of the project.
2. Design requirements
This stage illustrates the previously defined requirements with a user flow diagram or UML
diagrams.
3. Iteration
After defining and designing the requirements, developers start working on the projects to
develop a working product. All of this is done within an iteration or sprint.
4. Testing
This stage examines the product’s functionality and ensures the product does what it is designed
for.
5. Deployment
This stage releases a product to the user.
6. Client feedback
This last step gathers feedback from the client after releasing the product. The team receives the
feedback and implements changes if necessary.
Conclusion
The Agile model is best used when frequent changes are required and a highly qualified and
experienced team is available. The implementation of the required changes costs very little
because of the frequency of new increments that are produced.
Mrs.K.Vijayalakshmi,MCA.,M.Phil.,B.Ed Dept of MCA, TEC 26