ChapterOne MYLecture PDF
ChapterOne MYLecture PDF
ChapterOne MYLecture PDF
Chapter Content
Chapter One: Introduction Introduction Object oriented system
development methodology.
Software development Why an object oriented
process models Overview of the unified
approach.
Course Title: Software Engineering Software Process An object-oriented
Software life cycle philosophy
Basic concepts of an object
and process models Attributes of an object, its state
and properties.
idealized curve
Time
History of … History of …
History of … History of …
History of … History of …
History of … History of …
Software Crisis
Software Crisis
Causes:
Problems: 1. Software is a logical rather than a physical system element; therefore,
success is measured by the quality of a single entity rather than by the
1. Schedule and cost estimates are often grossly inaccurate. quality of many manufactured entities.
2. The “productivity” of software people hasn’t kept pace with 2. The intellectual challenge of software development is certainly one cause of
the affliction that affects software but the problems discussed above have
demand for their services. been caused by more mundane human failings.
3. The quality of software is sometimes less than adequate 3. A good manager can manage any project. If he or she is willing to learn
milestones that can be used to measure progress, apply effective methods
4. With no solid indication of productivity, we can’t accurately of control, disregard mythology and become conversant in rapidly changing
evaluate the efficiency of new tools, methods or standards technology.
4. Communication between managers and customers, software developers,
5. The software maintenance task devours the majority of all support staff etc. can break down because the special characteristics of
software cost software and the problems associated with its development are
misunderstood
5. The software people responsible for tapping that potential often change
when is discussed and resist change when it is introduced
Simple and easy to understand and use No working software is produced until late during the life cycle.
Easy to manage due to the rigidity of the High amounts of risk and uncertainty.
model. Not a good model for complex and object-oriented projects.
Each phase has specific deliverables and Poor model for long projects.
a review process. Not suitable for the projects where requirements are at a
Phases are processed and completed one moderate to high risk of changing. So risk and uncertainty is high
at a time. with this process model.
Works well for smaller projects where It is difficult to measure progress within stages.
requirements are very well understood. Cannot accommodate changing requirements.
Clearly defined stages. No working software is produced until late in the life cycle.
Well understood milestones. Adjusting scope during the life cycle can end a project.
Easy to arrange tasks. Integration is done as a "big-bang. at the very end, which doesn't
Process and results are well allow identifying any technological or business bottleneck or
documented. challenges early.
3/25/2023 Chapter One: Introduction 29 3/25/2023 Object Oriented System Analysis and Design 30
3/25/2023 Object Oriented System Analysis and Design 31 3/25/2023 Object Oriented System Analysis and Design 32
3/25/2023
3/25/2023 Object Oriented System Analysis and Design 33 3/25/2023 Object Oriented System Analysis and Design 34
Basic Requirement Identification: involves understanding the very basics product Throwaway/Rapid Prototyping: Throwaway prototyping is also
requirements especially in terms of user interface. The more intricate details of the called as rapid or close ended prototyping. This type of
internal design and external aspects like performance and security can be ignored at
this stage. prototyping uses very little efforts with minimum requirement
Developing the initial Prototype: The initial Prototype is developed in this stage, analysis to build a prototype. Once the actual requirements are
where the very basic requirements are showcased and user interfaces are provided. understood, the prototype is discarded and the actual system is
These features may not exactly work in the same manner internally in the actual developed with a much clear understanding of user
software developed and the workarounds are used to give the same look and feel to requirements.
the customer in the prototype developed.
Review of the Prototype: The prototype developed is then presented to the customer
and the other important stakeholders in the project. The feedback is collected in an
organized manner and used for further enhancements in the product under Evolutionary Prototyping: Evolutionary prototyping also called
development. as breadboard prototyping is based on building actual
Revise and enhance the Prototype: The feedback and the review comments are functional prototypes with minimal functionality in the
discussed during this stage and some negotiations happen with the customer based on beginning. The prototype developed forms the heart of the
factors like, time and budget constraints and technical feasibility of actual future prototypes on top of which the entire system is built.
implementation. The changes accepted are again incorporated in the new Prototype
developed and the cycle repeats until customer expectations are met. Using evolutionary prototyping only well understood
requirements are included in the prototype and the
requirements are added as and when they are understood.
3/25/2023 Object Oriented System Analysis and Design 35 3/25/2023 Object Oriented System Analysis and Design 36
3/25/2023
the various sub systems and then integrating all the plan
Modeling
Pros Cons
Requirement Elicitation
or Gathering Increased user involvement in the product Risk of insufficient requirement analysis owing
Quick Prototype Design even before implementation to too much dependency on prototype
Since a working model of the system is Users may get confused in the prototypes and
Prototype displayed, the users get a better understanding actual systems.
Implementation
of the system being developed. Practically, this methodology may increase the
Prototype Evaluation
By Customer Reduces time and cost as the defects can be complexity of the system as scope of the
detected much earlier. system may expand beyond original plans.
REQUIREMENTS FOR
Requirements NO CORRECTIONS, CHANGES
Fulfilled ?
Quicker user feedback is available leading to Developers may try to reuse the existing
AND ADDITIONS
YES better solutions. prototypes to build the actual system, even
System Design , Coding
and Testing Missing functionality can be identified easily when its not technically feasible
Confusing or difficult functions can be The effort invested in building prototypes may
System Deployment
identified be too much if not monitored properly
SYSTEM OPERATION
AND MAINTENANCE
3/25/2023 Chapter One: Introduction 39 3/25/2023 Object Oriented System Analysis and Design 40
3/25/2023
In Incremental model, iterative process starts with a Iterative process starts with a simple
simple implementation of a small set of the software implementation of a subset of the software
requirements and iteratively enhances the evolving
versions until the complete system is implemented requirements and iteratively enhances the
and ready to be deployed. evolving versions until the full system is
An iterative life cycle model does not attempt to implemented.
start with a full specification of requirements. At each iteration, design modifications are made
Instead, development begins by specifying and and new functional capabilities are added.
implementing just part of the software, which is then
reviewed in order to identify further requirements. The basic idea behind this method is to develop a
This process is then repeated, producing a new system through repeated cycles (iterative) and in
version of the software at the end of each iteration of smaller portions at a time (incremental).
the model.
3/25/2023 Object Oriented System Analysis and Design 41 3/25/2023 Object Oriented System Analysis and Design 42
Iterative and Incremental development is a During each iteration, the development module goes
combination of both iterative design or iterative through the requirements, design, implementation and
method and incremental build model for testing phases
development. Each subsequent release of the module adds function
to the previous release.
"During software development, more than one
The process continues till the complete system is ready
iteration of the software development cycle may as per the requirement.
be in progress at the same time." and "This The key to successful use of an iterative software
process may be described as an "evolutionary development lifecycle is rigorous validation of
acquisition" or "incremental build" approach." requirements, and verification & testing of each version
In incremental model the whole requirement is of the software against those requirements within each
cycle of the model.
divided into various builds.
3/25/2023 Object Oriented System Analysis and Design 43 3/25/2023 Object Oriented System Analysis and Design 44
3/25/2023
3/25/2023 Object Oriented System Analysis and Design 45 3/25/2023 Object Oriented System Analysis and Design 46
Pros Cons
Some working functionality can be developed quickly More resources may be required. Pros Cons
Although cost of change is lesser but it is With every increment operational product is delivered. Not suitable for smaller projects.
and early in the life cycle.
not very suitable for changing Issues, challenges & risks identified from each increment can be Management complexity is more.(
Results are obtained early and periodically.
requirements. utilized or applied to the next increment.
unknown schedules, budgets and
Parallel development can be planned. Risk analysis is better.
More management attention is required. deliverables)
Progress can be measured. It supports changing requirements.
System architecture or design issues may
End of project may not be known,
Less costly to change the scope/requirements. arise because not all requirements are
Initial Operating time is less.
Better suited for large and mission-critical projects. which is a risk.
Testing and debugging during smaller iteration is easy. gathered in the beginning of the entire life
cycle.
During life cycle software is produced early which facilitates Highly skilled resources are required
Risks are identified and resolved during iteration; and
Defining increments may require definition customer evaluation and feedback. for risk analysis.
each iteration is an easily managed milestone.
of the complete system.
Budget is spread in to the versions so that initial delivery costs Project’s progress is highly dependent
Easier to manage risk - High risk part is done first.
are much lower
upon the risk analysis phase.
3/25/2023 Object Oriented System Analysis and Design 47 3/25/2023 Object Oriented System Analysis and Design 48
3/25/2023
When is best to Use incremental model? When is best to Use incremental model?
Requirements of the complete system are clearly defined
and understood. There are some high risk features and goals which may
change in the future (when it is too risky to develop the
Major requirements must be defined; however, some
functionalities or requested enhancements may evolve with overall system as one block).
time. (some requirements may change during the project With software applications that are regarded by the users
life cycle)
with doubt. Early increments can create the necessary early
With lengthy projects. consensus on the usefulness of the application.
There is a time to the market constraint.
When there is budget constraint to complete the whole
A new technology is being used and is being learnt by the
development team while working on the project. project once
Resources with needed skill set are not available and are
planned to be used on contract basis for specific iterations.
3/25/2023 Object Oriented System Analysis and Design 49 3/25/2023 Object Oriented System Analysis and Design 50
3/25/2023 Object Oriented System Analysis and Design 51 3/25/2023 Chapter One: Introduction 52
3/25/2023
Depending on how we view the system the system development Traditional Approach( Structured Approach)
approach also can be structured or object oriented approach. Views a system in terms of what it is intended to do and
The Structured Approach then develop models of procedures and data.
Views a system in terms of what it is intended to do and then Is a strategy based on the concept that a system should
develop models of procedures and data. be separated into two parts: data(modeled using a
Is a strategy based on the concept that a system should be data/ persistence model) and functionality( modeled
separated into two parts: data(modeled using a data/ using a process model)
persistence model) and functionality( modeled using a
process model)
Structured methods are: Action oriented (data flow
diagrams); or Data oriented (entity-relationship
Structured methods are action oriented (data flow diagrams);
diagrams); But not both
or data oriented (entity-relationship diagrams); But not both
Therefore using structured approach we develop applications Therefore using structured approach we develop
in which data are separated from behavior in both the design applications in which data are separated from behavior
model and implementation phase. in both the design model and implementation phase.
3/25/2023 Object Oriented System Analysis and Design 53 3/25/2023 Object Oriented System Analysis and Design 54
3/25/2023 Object Oriented System Analysis and Design 57 3/25/2023 Object Oriented System Analysis and Design 58
3/25/2023 Object Oriented System Analysis and Design 59 3/25/2023 Object Oriented System Analysis and Design 60
3/25/2023
3/25/2023 Object Oriented System Analysis and Design 61 3/25/2023 Object Oriented System Analysis and Design 62
3/25/2023 Object Oriented System Analysis and Design 63 3/25/2023 Object Oriented System Analysis and Design 64
3/25/2023
3/25/2023 Object Oriented System Analysis and Design 65 3/25/2023 Object Oriented System Analysis and Design 66
3/25/2023 Object Oriented System Analysis and Design 67 3/25/2023 Object Oriented System Analysis and Design 68
3/25/2023
3/25/2023 Object Oriented System Analysis and Design 69 3/25/2023 Object Oriented System Analysis and Design 70
References
1. Brahmin, Ali (1999), Object oriented System development, McGraw Hill, USA.
2. Roger Pressman. 2010. Software Engineering: A Practitioner’s Approach. 6th
Edition. McGraw-Hill.
3. Ambler, S. W. (2004). The Object primer: The Application Developer’s Guide
to Object Orientation and the UML 3rd edition. New York. Cambridge
University Press