Unit 3
Unit 3
Unit 3
– Process steps:
1. Formulation
2. Analysis
3. Design
4. Implementation.
2
Development Stages
• Software development process has a sequence of
well-defined stages, each with a distinct purpose,
input, and output.
1. System conception
2. Analysis
3. System design
4. Class design
5. Implementation
6. Testing
7. Training
8. Deployment
9. maintenance
System conception
• Deals with the genesis of an application
• Initially somebody thinks of an idea for an
application and sells the idea to the
organization
• The innovator must understand both business
needs and technological capabilities
Analysis
• Focuses on creation of models
• They specify what must be done, not how it should
be done
• It is difficult because developers must fully
understand the problem
• Developers consider the available sources of
information and resolve ambiguities
• Two stages
1. Domain analysis
• Focuses on real-world thing how it is captured in application
2. Application analysis
• Addresses the computer application that are visible to users
System design
• During this stage, the developer makes strategic
decisions with broad consequences
• Must formulate
• Architecture
1. Global strategy
2. Policies
• The system designer must understand how a new
system interacts with other systems
• The architecture must also support future
modification of the application
Class design
• During class design, the developer expands
and optimizes analysis models
• There is a shift in emphasis from application
concepts toward computer concepts
• Developers choose algorithms to implement
major system functions
Implementation
• It is the stage for writing the actual code
• Mapping of design elements – programming
language and database code
Testing
• After implementation the system is complete,
but it must be carefully tested before being
commissioned for actual use
• Testers checks original business requirements
and verify that the system delivers the proper
functionality
Training
• Organization must train users so that hey can
fully benefit from an application
• It actually accelerates users on the software
learning curve
Deployment
• Developers must tune the system under
various loads and write scripts and install
procedures
• Actual result here is to produce usable
product release
Maintenance
• Once development is complete and a system
has been deployed, it must be maintained for
continued success
• Kinds of maintenance
– Bugs that remains in the original system must be
fixed
– Enhancement needs to be satisfied
Development Life Cycle
• An OO approach to software development
supports multiple life-cycle styles.
• waterfall approach performing the phases of
analysis, design, and implementation in strict
sequence for the entire system
• an iterative development strategy
14
Difference between waterfall
development and iterative development
8/28/12
Example : ATM Network
ATM System: Problem Statement
• Design the software to support a computerized banking network including both
human cashiers and automatic teller machines (ATMs) to be shared by a
consortium of banks. Each bank provides its own computer to maintain its own
accounts and process transactions against them. Cashier stations are owned by
individual banks and communicate directly with their own bank’s computers.
Human cashiers enter account and transaction data.
• The banks will provide their own software for their own computers; you are to
design the software for the ATMs and the network. The cost of the shared
system will be apportioned to the banks according to the number of customers
with cash cards.
• LIBRARY MANAGEMENT SYSTEM
• Library management System (LMS) provides a simple GUI (graphicaluser
interface) for the Library Staff to manage the functions of the
libraryeffectively. Usually when a book is returned or issued, it is noted
down in aregister after which data entry is done to update the status of
the books in amoderate scale. This process takes some time and proper
updation cannot beguaranteed. Such anomalies in the updation process
can cause loss of books.So a more user friendly interface which could
update the database instantly,has a great demand in libraries.The goal of
this project is to provide simplicity as well as security andefficiency to the
management. Its main objective is to provide all thefunctions of the library
along with support of barcode reader. Thecontemporary system stores the
database information on a local computer,which can‟t be updated and
accessed on a remote computer or a computer in the library network
Problem 1
• Irrelevant classes
• Vague classes
• Attributes
• Operations
• Roles
• Implementation constructs
Keeping the Right classes
1) Redundant Classes - If two classes express the same information, the most
descriptive name should be kept.
2) Irrelevant Classes - If a class has little or nothing to do with the problem, it
should be eliminated . This involves judgment, because in another context
the class could be important.
3) Vague Classes - A class should be specific. Some classes may have not
specific should be eliminated.
4) Attributes - Names that primarily describe individual objects should be
restated as attributes.
5) Operations - If a name describes an operation that is applied to objects
and not manipulated in its own right, then it is not a class.
6) Roles - The name of a class not a role that it plays in an association.
7) Implementation Constructs - Constructs extraneous to real world should
be eliminated from the analysis model. They may be needed later during
design, but not now
Eliminating Unnecessary classes
2. Preparing a data dictionary
1) Misnamed Associations
Names are important to understanding and should be chosen with great
care.
2) Role names
Add role names where appropriate. The role name describes the role that a
class in the association plays from the point of view of other class.
3) Qualified Associations
A qualifier distinguishes objects on the “many” side of an association. So
wherever necessary in association add qualifiers.
4) Multiplicity
Specify multiplicity, but don’t put too much effort into getting it right, as
multiplicity often changes during analysis.
5) Missing Associations
Add any missing associations that are discovered.
ATM Network
4. Identifying Attributes
• Attributes are properties of individual objects, such
as name, weight, velocity, or color. Attributes
shouldn’t be objects.
• Attributes usually correspond to nouns followed by
possessive phrases, such as the “color of the car”.
• Adjectives often represent specific enumerated
attribute values, such as red.
• We can find the attributes with our knowledge of the
application domain and the real world.
• Derived attributes are clearly labeled or should be
omitted.
Keeping the Right Attributes
Eliminate unnecessary and incorrect attributes with the following
criteria: