0% found this document useful (0 votes)
61 views

SAD - Ch3 - UML and Software Development Process

This document discusses software development processes and how the Unified Modeling Language (UML) can be used within them. It describes typical development activities like requirements gathering, analysis, design, implementation, testing, and maintenance. It then covers waterfall and iterative agile processes, noting benefits of the latter like early feedback and adaptation. Finally, it outlines how UML diagrams can be applied to requirements, analysis, and design phases.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

SAD - Ch3 - UML and Software Development Process

This document discusses software development processes and how the Unified Modeling Language (UML) can be used within them. It describes typical development activities like requirements gathering, analysis, design, implementation, testing, and maintenance. It then covers waterfall and iterative agile processes, noting benefits of the latter like early feedback and adaptation. Finally, it outlines how UML diagrams can be applied to requirements, analysis, and design phases.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

SYSTEMS

ANALYSIS AND DESIGN


Le Viet Truong
Faculty of Computer Science
Vietnam - Korea University of Information and Communication Technology (VKU)
UML and Software Development
Process
• Software Development Activities
• Object-Oriented Analysis and Design
• Software Development Processes
• UML and Software Development Processes
Main Software Development Activities

Requirements Gathering Design


Analysis
Define requirement Design the solution /
Define the conceptual model
specification software plan

Implementation Integration and Test


Deployment
Code the system based on Prove that the system meets
Installation and training
the design the requirements

Maintenance

Post-install review
Support docs
Active support

3
Analysis emphasizes an investigation of the problem
and requirements, rather than a solution.
During object-oriented analysis, there is an emphasis
on finding and describing object or concepts in the
problem domain.

If a cash register system at the supermarket is desired


How will it be used?
What are its functions?
4
Design emphasizes a conceptual solution in software that
fulfils the requirements and “guides” the implementation.
During object-oriented design, there is an emphasis on
defining software objects and how they collaborate to fulfil
the requirements. Database schema
Class diagram

Package diagram

Design specification of the cash register system


5
6
Software development process is a series of software
development activities that a software program goes
through when developed

7
Ad-hoc Coding “process”
• Does not scale to large size project
• Does not scale to large development teams

8
Waterfall process
Requirements
Specification

Analysis

Sequential
Design

Implementation

Integration and
Test
• An phase is begun only when the previous has finished
• No return to previous phase
9
Critique of Waterfall process
• Responds poorly to changes and problems
• Substantial upfront document
• Assumes fixed specification - may not be what customer wants
• Fixes come very late - costlier to fix later time

Source: Applied Software Measurement, Capers Jones, 1996.

10
Iterative and Agile
Development Processes

11
Facts of life

• Requirements change, changes break existing design.


• Coding up a design suggests flaws in design
• Testing identifies flaws in code - which could be design flaws
• Maintenance requires not only fixes but new features

12
Philosophy

• Embrace change
• Don’t do too much, too soon
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan

13
Early coding, early testing of partial system
in repeating cycles.
Development begins before all
requirements are defined in detail.
Feedback is used to clarify evolving
specification.
14
Benefits

• Early rather than late mitigation of high risks


• Early visible progress
• Managed complexity - the team is not overwhelmed by “analysis paralysis” or very long
and complex steps
• Early feedback, user engagement, and adaptation, leading to a redefined system that
more closely meets the real needs of the stakeholders

Less project failure, better productivity,


• Feedback can also improve development process itself

and lower defect rates

15
Agile software development methods

• Adaptive software development (ASD)


• Agile modeling
• Agile Unified Process (AUP)
• Crystal Clear Methods
• Disciplined agile delivery
• Dynamic Systems development method (DSDM)
• Extreme programming
• Feature-driven development (FDD)
• Lean software development
• Kanban
• Scrum

16
Scrum

17
UML can be used in many software development process

18
UML diagrams can be applied to several activities

Requirements Analysis Design


Use-case •
Class, object • •
Activity • ο
State • •
Interaction ο •
Component •
Deployment •

ο : possible usage
• : recommended usage

19

You might also like