0% found this document useful (0 votes)
9 views46 pages

Software Development & UML Guide

The document covers software development methodologies, classical phases in software production, and the Unified Modeling Language (UML) version 2.0. It outlines the importance of methodologies for improving communication, planning, and resource management in software projects, and details the eight classical phases from requirements to maintenance. Additionally, it includes a case study on Nowhere Cars, highlighting their mission statement and the benefits of automation and e-commerce in their operations.

Uploaded by

stevenhashiru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views46 pages

Software Development & UML Guide

The document covers software development methodologies, classical phases in software production, and the Unified Modeling Language (UML) version 2.0. It outlines the importance of methodologies for improving communication, planning, and resource management in software projects, and details the eight classical phases from requirements to maintenance. Additionally, it includes a case study on Nowhere Cars, highlighting their mission statement and the benefits of automation and e-commerce in their operations.

Uploaded by

stevenhashiru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

Lecture 2 & 3

Content

Software Development Methodologies


Classical Phases in Software Production
The Unified Modelling Language, Version 2.0
Case Study - Nowhere Cars mission statement
Lecture 2
Classes and Objects

It uses the UML to show the relationship


Lecture 2 2021
Classes and Objects

It uses the UML to show the relationship


Lecture 2 2021

It uses the UML to show the relationship


Fig 1-13 (Textbook #1) shows Polymorphism
Software Development Methodologies
A methodology is a systematic way of doing things.

All software, especially large pieces of software produced by many people, should be
produced using some kind of methodology.

Even small pieces of software developed by one person can be improved by keeping a
methodology in mind.
Software Development Methodologies
Large development projects also benefit from:
Documentation
Reduced latency
Improved chances of delivery on time and within budget.
Better communication between users, sales people, managers and developers
Repeatability
More accurate costing
Software Development Methodologies
A good methodology will address at least the following issues:

Planning: Deciding what needs to be done.


Scheduling: Mapping out when things will be done.
Resourcing: Estimating and acquiring the human, software, hardware and other resources
that are needed.
Workflows: The subprocesses within the wider development effort (for example, designing
the system architecture, modeling the problem domain and planning the development
effort).
Software Development Methodologies

Activities: Individual tasks within a workflow,


such as testing a component,
drawing a class diagram,
detailing a use case …

Roles: (developer, tester or sales person).

Artifacts: pieces of software, design documents, training plans and manuals.

Education: Deciding how to train personnel,


(staff, customers, sales people)
CLASSICAL PHASES IN SOFTWARE PRODUCTION
1-Requirements
2-Analysis
3-Design
4-Specification
5-Implementation
6-Testing
7-Deployment
8-Maintenance
CLASSICAL PHASES IN SOFTWARE PRODUCTION
1-Requirements

Discovering what we’re going to achieve with our new piece of software

Business modeling: Understanding the context in which our software will operate.

Functional specification: Deciding what capabilities the new software will have and writing
down those capabilities.

Key Questions
‘What is our context?’
‘What are we trying to achieve?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
2 - Analysis

Understanding what we’re dealing with.

Before we can design a solution, we need to be clear about the relevant entities, their
properties and their inter-relationships.

Key Questions
‘What entities are we dealing with?’
‘How can we be sure we have the right ones?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
3- Design

Breaks the system down into


logical subsystems (processes) and
physical subsystems (computers and networks),
decides how machines will communicate,
chooses the right technologies for the job.

Key Questions
‘How are we going to solve the problem?’
‘What hardware and software will we need in the finished system?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
4-Specification
Describing the expected behavior of our programming components.

Specification can be used in the following ways:


• As a basis for designing test software to exercise the system.
• To demonstrate that our software is correct (this is desirable for life-critical applications).
• To document our software components to the extent that they could be implemented by
third parties.
• To describe how our code can be reused safely by other applications.

Key Questions
‘What rules govern the interfaces between the system components?’
‘Can we remove ambiguity and ensure correctness?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
5-Implementation
Writing pieces of code that work together to form subsystems, which in turn collaborate to form the
whole system.

Key Questions
‘How can we code the components to meet the specification?’
‘How do we write stylish code?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
6-Testing

The software must be tested against the system requirements to see if it fits the original
goals.

Key Questions
‘Does the finished system satisfy the requirements?’
‘Can we break the system?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
7-Deployment

Getting the hardware and software to the end users, along with manuals and training
materials.

A complex process, involving a gradual, planned transition from the old way of working to
the new.

Key Questions
‘What do the system administrators have to do?’
‘How can we educate the end users?’
CLASSICAL PHASES IN SOFTWARE PRODUCTION
8- Maintenance
The software has to stand up to everyday use.

We must find the faults and remove them as quickly as possible, rolling out fixed versions of
the software to keep the end users happy.

Users may discover


deficiencies (things that the system should do but doesn’t),
extra requirements (things that would improve the system).

Key Questions
‘Can we find and fix the faults?’
‘Can we improve the system?’
The Unified Modelling Language, Version 2.0

■ Functional Diagrams
■ Structure Diagrams
■ Behaviour Diagrams

– Developers
■ Grady Booch
■ Ivar Jacobson
■ James Rumbaugh
The Unified Modelling Language

Functional Diagrams Structure Diagrams Behaviour Diagrams


▪ Use-Case Diagrams ▪ Class diagrams ▪ Sequence diagrams
▪ Activity Diagrams ▪ Object diagrams ▪ Behavioural State Machines
Functional Diagrams
■ Use-Case Diagrams
– Capture business requirements
– Illustrates interaction between system and
environment
Functional Diagrams
■ Activity Diagrams
– Illustrate business workflows
Structure Diagrams
■ Class diagrams
– relationship between classes
Structure Diagrams

■ Object diagrams
– Relationships between objects
Behaviour Diagrams
■ Interaction Diagrams ....
– Sequence diagrams
■ Show Time-based ordering and behavior of objects and their activities

Slide 34
Behaviour Diagrams
■ State Machines ...
– Behavioural State Machines (c)
■ Examines behavior of one class/object
Case Study

Nowhere Cars mission statement


Case Study
Nowhere Cars mission statement

Since we automated the tracking of cars at our stores – using bar codes,
countertop terminals and laser readers – we have seen many benefits: the
productivity of our rental assistants has increased 20%, cars rarely go
missing and our customer base has grown strongly (according to our
market research, this is at least partly due to the improved perception of
professionalism and efficiency).
Case Study
The management feels that the Internet offers further exciting
opportunities for increasing efficiency and reducing costs. For example,
rather than printing catalogs of available cars, we could make the catalog
available to every Internet surfer for browsing on-line. For privileged
customers, we could provide extra services, such as reservations, at the
click of a button. Our target saving in this area is a reduction of 15% in the
cost of running each store.
Case Study

Within two years, using the full power of e-commerce, we


aim to offer all of our services via a Web browser, with
delivery and pick-up at the customer’s home, thus achieving
our ultimate goal of the virtual rental company, with minimal
running costs relative to walk-in stores.
Case Study
Even this three-paragraph mission statement contains a lot of information:

history of automation at the company;

customer satisfaction to date;

on-line catalogs and reservations;

privileged and non-privileged customers;

savings history and savings targets;

company end-game (the ‘virtual rental company’).


Case Study

Admittedly, some of the management’s dreams are a long way off (it may be
more than two years before customers are comfortable with virtual rental
stores), but at least we have two good starting points for our investigation:

What services do the company’s stores currently offer?

Which of those services are appropriate for Internet delivery?


Case Study

The fictitious company’s new system is referred to as Coot,

with the Internet facilities available to customers referred to as iCoot.


Case Study
The unique selling point of Nowhere Cars is that they rent specialist cars to
wealthy enthusiasts for extended periods. Since the supply of each kind of car
is limited, customers must turn up at a store when they actually want to rent.
Cars are rented on a first-come, first-served basis and customers can take
their pick from what is currently available.
Case Study
Alternatively, customers who are keen to rent a model of car which is not
available can make a reservation. An assistant will contact the customer
directly when a matching car becomes available; the customer must collect it
within two days (or pay a levy for depriving other customers of the car). As yet,
there are no home delivery or home pick-up services (partly for insurance
reasons). For members, who must register, reservations can be made by
telephone.
To be continued
Modeling with use cases and the use-case diagram
■ a use-case diagram provides a simple, straightforward way of communicating to the users
exactly what the system will do,
a use-case diagram is drawn when gathering and defining requirements for the
system.

■ In this manner, the use-case diagram can encourage the users to provide additional high-
level requirements.
■ A use-case diagram illustrates in a very simple way the main functions of the system and
the different kinds of users that will interact with it.
■ Elements of Use-Case Diagrams (Page 121-122, Textbook #1)
Modeling with use cases and the use-case diagram

Patients, doctors, and management personnel will use the appointment system to
manage appointments,
record availability, and
produce schedules
Modeling with use cases and the use-case diagram

viewing car model details involves

a customer selecting a car model,

requesting its details,

receiving specific information about the car model


Class diagram
A class diagram shows which classes exist in the business (during analysis) or in the system
itself (during subsystem design).

A class diagram shows how objects of these classes can be connected together.

a CarModel has inside it a


CarModelDetails, referred to as its details.
A CarModel has inside it a CarModelDetails, referred to as its

You might also like