440 likes | 770 Views
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.
E N D
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. • 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 • 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
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.
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.
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.
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
Iterative Refinement Requirements Evaluation Implementation (prototype) Design
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.
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
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)
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
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.
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
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
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