1 / 36

Object Oriented System Analysis and Design

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.

Download Presentation

Object Oriented System Analysis and Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented System Analysis and Design Chapter Two

  2. System development Process models in object technology (with UML)

  3. 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.

  4. 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

  5. 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

  6. 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

  7. 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.

  8. 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

  9. Types of 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

  10. Waterfall Model of SDLC

  11. 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. 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

  14. 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. An iterative development model

  16. 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. Iteration Across Life Cycle Phases

  18. Iterative Refinement Requirements Evaluation Implementation (prototype) Design

  19. 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.

  21. The Spiral Life Cycle Model

  22. 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

  23. 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.

  24. RUP phase model

  25. 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.

  26. The Unified Process Life Cycle Model

  27. 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.

  28. 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)

  29. 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

  30. 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

  31. 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.

  32. 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

  33. 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

  34. 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

  35. Review Questions • List down the different software development process • What is the basic cycles of each process • What is the advantage and disadvantage of each process • Under what condition you choose one method from the other

  36. End of 1st chapter

More Related