Download Introduction to UML & Software Development: Object-Oriented System Analysis & Design and more Lecture notes Object Oriented Analysis and Design in PDF only on Docsity! CHAPTER ONE PART-II Object Oriented System Analysis and Design 1 Chapter One Topics Chapter I- Introduction: (2 weeks) Definitions and basic concepts (system/software, system thinking..) Structured Vs OO approaches Basic object orientation concepts Process models (waterfall, Prototyping, Iterative, RUP) Work flows (Phases)- in object orientation 2 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 process UML 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 process models? A simplified representation of a software process, presented from a specific perspective. Generic process models Waterfall (linear sequential) Prototyping Iterative (Evolutionary)development- Spiral RUP – Rational Unified Process Other process models Agile Cleanroom DSDM - Dynamic Systems Development Method RAD - Rapid Application Development XP – eXtreme Programming V-Model RUP – Rational Unified Process 10
Project planning
pn
Waterfall Model of SDLC
Planning
specifications
frozen
POE ECM re
eT eer
Vu Cueto)
eg
Finished system
delivered
exactly as
specified
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 requirements This 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. 12 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. 15 Requirements Analysis & Design
Implementation
Planning
Deployment
Initial
Planning
Evaluation
Testing
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 17 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. 20 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
Sonstut fourth Proton.
RUP phase model
O
C
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.
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Configuration
& Change Mgmt
Project Management
Environment
Model
The Unified Process Life Cycle
Workflows | |
Phases
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 The 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. 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 36 End of 1st chapter 37