Presentation on theme: "CHAPTER TWO Object Oriented System Analysis and Design 1."— Presentation transcript:
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 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 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 models 1. Waterfall (linear sequential) 2. Prototyping 3. Iterative (Evolutionary)development- Spiral 4. RUP – Rational Unified Process Other process models 1. Agile 2. Cleanroom 3. DSDM - Dynamic Systems Development Method 4. RAD - Rapid Application Development 5. XP – eXtreme Programming 6. V-Model 9
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. 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
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
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.
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 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.
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 process 3. What is the advantage and disadvantage of each process 4. Under what condition you choose one method from the other 35