Upload
athena-higgins
View
34
Download
1
Embed Size (px)
DESCRIPTION
Object Oriented System Analysis and Design. Chapter Two. System development Process models in object technology ( with UML ). THE UNIFIED MODELLING LANGUAGE (UML). A language whose vocabulary and rules focus on the conceptual and physical representation of a system. - PowerPoint PPT Presentation
Citation preview
CHAPTER TWO
Object Oriented System Analysis and Design
1
System development Process models in object technology (with UML)
2
THE UNIFIED MODELLING LANGUAGE (UML)
A language whose vocabulary and rules focus on the conceptual and physical representation of a system.
UML defines structural, Functional and behavioral things and diagrams.
UML is the language of blueprints for software.
UML…
It is a graphical language for Visualizing Specifying – building models that are precise,
unambiguous, and complete Constructing – possible to map from a model in the
UML to a programming language Documenting
Intended for software-intensive systems
WHAT UML IS NOT
UML is not a method or methodology (Methododology= Notation
(e.g.,UML) + Process) UML does not dictate a particular
processUML can be used to record the resulting
domain and design models, independent of the process
Choose an appropriate process for a particular project, independent of the modeling language
UML DIAGRAMS
Diagrams used to describe structure Class diagram Object diagram Component diagram Deployment diagram
Diagrams used to describe behavior Use Case diagram (some says it is functional) Sequence diagram Activity diagram Collaboration diagrams Statechart diagram
More on these later- Chapter TWO
Software development Life Cycle
The life of a software system can be represented as a series of cycle. A cycle ends with the release of a version of the
system to the customers.
Software development life cycle encompasses the phases/processes that a software developer goes through when developing a new software.
Recall that It consists of 5 basic phases: - System planning
includes initial investigation System analysis
includes requirements capture/elicitation System design System construction and implementation
includes system testing System deployment and maintenance
Every system development models that have been developed incorporates these basic phases into their model, ex: - Waterfall Model, Iterative Model, Unified Process etc
Types of Software process models?
A simplified representation of a software process, presented from a specific perspective.
Generic process models1. Waterfall (linear sequential)2. Prototyping3. Iterative (Evolutionary)development- Spiral4. RUP – Rational Unified Process
Other process models1. Agile2. Cleanroom3. DSDM - Dynamic Systems Development Method4. RAD - Rapid Application Development5. XP – eXtreme Programming6. V-Model
9
Waterfall Model of SDLC
Discussion of the Waterfall Model
Advantages:
Process visibility Dependence on individuals Quality control Cost control
Disadvantages: Inflexible partitioning of the project into distinct stages This makes it difficult to respond to changing customer requirementsThis model is only appropriate when the requirements are well-understood
Each stage in the process reveals new understanding of the previous stages, that requires the earlier stages to be revised.
11
12
Prototyping
Building a scaled-down working version of the system
Analysts work with users to determine the initial & basic requirements for the system.
The analyst then quickly builds a prototype. When the prototype is complete, the users work with
the system to provide additional input to modify the previous delivery
Users check outputs, interactivity, usability and the like The analyst uses the feedback to revise the prototype
and deliver new versions This iterative process continues until the users are
relatively satisfied.
13
Prototyping (cont.)
Advantages: Users are involved in the A&D process Captures requirements in concrete form, rather than
verbal/abstract form
Disadvantages Insufficient analysis User confusion of prototype and finished system Developer misunderstanding of user objectives Developer attachment to prototype Excessive development time of the prototype Relatively costly development as developers produce
different versions before final delivery
Iterative and Incremental (Evolutionary) development
is a cyclic software development process developed in response to the weaknesses of the waterfall model.
starts with an initial planning and ends with deployment with the cyclic interaction in between.
is an essential part of to days Rational Unified Process(RUP), the Dynamic Systems Development Method(DSDM), Extreme Programming(XP) and generally the agile software development.
14
An iterative development model15
Evolutionary development process
Problems• Lack of process visibility• Systems are often poorly structured due to lack of proper
planning• Special skills (e.g. in languages for rapid prototyping) may
be required
Applicability• For small or medium-size interactive systems• For parts of large systems (e.g. the user interface)• For short-lifetime systems
16
Iteration Across Life Cycle Phases
Iterative Refinement
Requirements
DesignImplementation(prototype)
Evaluation
Spiral model- as part of evolutionary process
is a software development process combining elements of both prototyping-in-stages and sequential waterfall models combines advantages of top-down and bottom-up
concepts. is intended for large, expensive and
complicated projects.
19
Spiral development
Process is represented as a spiral rather than as a sequence of activities with backtracking.
Each loop in the spiral represents a phase in the process.
No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.
Risks are explicitly assessed and resolved throughout the process.
The Spiral Life Cycle Model
Advantages of the spiral model
The spiral model promotes quality assurance through prototyping at each stage in systems development.
There are many evolutionary process models
22
The Rational Unified Process
A modern process model derived from the work on the UML and associated process.
Normally described from 3 perspectives A dynamic perspective that shows phases of the model
over time; A static perspective that shows process activities that
are static; A practice perspective that suggests good practice to
be used during the process.
RUP phase model
Phase iteration
Inception Elaboration Construction Transition
RUP phases
Inception Establish the business case for the system.
Elaboration Develop an understanding of the problem domain and
the system architecture.
Construction System design, programming and testing.
Transition Deploy the system in its operating environment.
The Unified Process Life Cycle Model
Benefits of RUP
The Rational Unified Process captures many of modern software development's best practices in a form suitable for a wide range of projects and organizations: Develop software iteratively. Manage requirements. Use component-based architectures. Visually model software. Continuously verify software quality. Control changes to software.
Agile Software Process Models
Agile software engineering combines a philosophy and a set of development guidelines.
The philosophy encourages customer satisfaction and early incremental delivery of
software, small; highly motivated project teams; informal methods; minimal software engineering work products, and overall development simplicity.
Extreme Programming (XP) Adaptive Software Development (ASD) DSDM(Dynamic Systems Development Method) Feature Driven Development (FDD)
28
Work flows (Phases)- in object orientation
Basic workflows (not to stick to a single process model or methodology- just in object orientation
Each workflow is a set of activities that various project workers perform
29
The workflows are: - Requirements-elicitation (gathering)
Requirement definition captures the functional and non functional
requirements of the new system Tries to understand what users need aims at building mainly the essential use
case model and CRC Outcome: Understanding users through Use-
case Diagram, CRC, Essential UI prototyping , Supplementary specification
Cont…
Analysis Structuring, analyzing and modeling
requirements aims at understanding the system and building
the analysis model helps the developer refine and structure the
functional requirements captured through essential use-case model
Outcome: Determining what the system should do and look like through System Use case, Class/Object Diagram, Sequence Diagram, Activity diagram and UI prototyping.
31
Design Focus on how to make the analysis a reality defines how things will be built aims at building the design model
describes the physical realisations of the use cases from the use-case models and the contents of the analysis model
Outcome: Design level class diagram, Collaboration Diagram, sate chart diagram, component diagram, deployment diagram, persistent model; extending the UML
Cont…
Implementation and testing aims at building a working system, coding,
testing documentation..... describes how elements of the design model are
packaged into software components, i.e source code,
Outcome: working system, test case scenarios, documentation
33
Summary
Definitions and basic concepts System/software, Quality software
Structured vs OO technologies Structured (process oriented) Vs OOT (object oriented)
Basic object orientation concepts Abstraction, Encapsulation, hierarchy, modularity,
Class, Object, attribute, methods, ….
Process models Waterfall, prototype, Incremental, RUP
Work flows- in object orientation Elicitation, Analysis, Design, Implementation
34
Review Questions
1. List down the different software development process
2. What is the basic cycles of each process3. What is the advantage and disadvantage of
each process4. Under what condition you choose one
method from the other
35
End of 1st chapter36